Спецификация языка C # определяет идентификаторы в разделе 2.4.2 спецификации Unified C # 3.0. В основном это «буква или подчеркивание», за которым следует любое число «буква, десятичная цифра, соединительный символ, объединяющий символ, символ форматирования». Чтобы использовать ключевое слово в качестве идентификатора, нужно поставить @ впереди, например, int @int = 5;
Я не изучал спецификацию CLI, но я знаю, что она немного менее строга, чем спецификация C #, потому что компилятор C # использует «невыразимые» имена для таких вещей, как анонимные методы - они обычно включают в себя угловые скобки, которые действительны в CLI, но не действительный в C #.
РЕДАКТИРОВАТЬ: В спецификации C # нет явных ограничений длины имени, но раздел 2.4.2 имеет одно резервирование:
Идентификаторы, содержащие два последовательных символа подчеркивания (U + 005F), зарезервированы для использования реализацией. Например, реализация может предоставлять расширенные ключевые слова, которые начинаются с двух подчеркиваний.
Другими словами, это зависит от реализации того, будет ли работать конкретный идентификатор, начинающийся с __
. (Некоторые компиляторы могут иметь __foo
в качестве расширенного ключевого слова, а некоторые - нет.)