Какие символы разрешены в имени classа C #?
Какие символы разрешены и что запрещено в имени classа C #? Не могли бы вы помочь?
EDIT: указать. Какие специальные символы разрешены? Пожалуйста, будьте конкретны, потому что ссылки на спецификации на 50 страниц на высокотехнологичном языке – это не ответ, который мне очень поможет.
ОБЪЯСНЕНИЕ: То, что я пытаюсь выполнить, состоит в том, чтобы разделить имя classа на отличимые части, например:
- Как удалить подчеркивание полей внешнего ключа в коде сначала по соглашению
- Как называется дефис-разделенный случай?
- Зарезервированные слова как имена переменных или методов
- Каковы наиболее распространенные соглашения об именах в C?
- Соглашение об именовании папок Blackberry res
class Person @ WorkOffice @ Helper @ Class
{
}
И я думаю о способе использования какого-то персонажа или чего-то еще, чтобы иметь возможность получить части этого classа, PersonOffice, Helper и Class.
И да, я знаю, что это безумие, но мне это нужно. Я знаю, что я могу использовать атрибуты и reflection для хранения этих данных в метатете classа, но это не так, поэтому, пожалуйста, не предлагайте это решение.
- Каковы некоторые популярные соглашения об именах для Unit Tests?
- Какой префикс вы используете для переменных-членов?
- Android - Соглашение об именах пакетов
- Идентификация наименования наименований устройств
- Visual Studio 2010 и 2008 не могут обрабатывать исходные файлы с одинаковыми именами в разных папках?
Детали спецификации здесь . По существу, любой символ Юникода (включая escape-коды unicode) в classах символов Lu , Ll , Lt , Lm , Lo , Nl , Mn , Mc , Nd , Pc и Cf. Первый символ является исключением и должен быть буквой (classы Lu , Ll , Lt , Lm или Lo ) или подчеркиванием. Кроме того, если идентификатор является ключевым словом, вы должны придерживаться @ перед ним. Опция @ необязательна.
Действительные идентификаторы в C # определены в Спецификации языка C # , пункт 9.4.2. Правила очень просты:
- Идентификатор должен начинаться с буквы или символа подчеркивания
- После первого символа он может содержать числа, буквы, коннекторы и т. Д.
- Если идентификатор является ключевым словом, он должен быть добавлен с помощью “@”
источник
Категории Юникода можно найти здесь: http://www.dpawson.co.uk/xsl/rev2/UnicodeCategories.html
И оттуда вы можете выбрать большинство вещей из групп (из спекуляций , которые другие указали правильно):
Lu, Ll, Lt, Lm, Lo, Nl, Mn, Mc, Nd, Pc, Cf
Имейте в виду, однако, что Visual Studio (или это Resharper) не обязательно будет любить их всех, но большинство из них компилируется. Возьмем, к примеру, персонаж 30FB KATAKANA MIDDLE DOT. Он компилируется отлично, но он не играет хорошо с IDE. Но эта странная вещь FE34 PRESENTATION FORM FOR VERTICAL WAVY LOW LINE отлично работает.
Вот как работает seperator:
class Person〱WorkOffice〱Helper〱Class { }
Я не говорю, что я рекомендую использовать странные символы. Но для особых случаев, как это кажется 🙂
EDIT: обратите внимание, что в спецификации указано, что он позволяет символам из Unicode 3.0 . Я упустил это и задался вопросом, почему многие персонажи не будут работать, хотя они были из правильных групп. Проверьте этот вопрос .
Обратите внимание, что, как указывает thecoop, термин «символ» в контексте Unicode намного шире, чем просто алфавитные буквы.
В основном многие символы Unicode могут быть корректно использованы в идентификаторах, даже если они могут быть немного сложны для ввода в Windows.
В качестве примера:
- Удерживайте клавишу ALT
- Введите «0394» на клавиатуре
- Релиз ALT
Будет добавлен греческий верхний регистр Delta к вашему коду … это допустимое письмо с идентификатором до C #.
Обратите внимание, однако, что соответствие CLS выходит из windows … но по звукам вы можете не слишком беспокоиться об этом.