Можно ли определить перечисление в C # со значениями, которые являются ключевыми словами?

У меня есть некоторые клиентские данные, которые я читаю, и я определил Enum для одного из значений, поэтому я могу использовать Enum.Parse (type, somestring).

Проблема в том, что они просто добавили новое значение: «публичный». Можно ли определить значение перечисления, которое также является зарезервированным словом?

IE:

public enum MyEnum {
    SomeVal,
    SomeOtherVal,
    public,
    YouGetTheIdea
}

Если нет, я думаю, что вместо этого я напишу метод разбора.

14
задан John Saunders 14 September 2010 в 18:49
поделиться

5 ответов

Вы можете добавить @ к имени переменной. Это позволяет вам использовать ключевые слова в качестве имен переменных - так что @public .

См. здесь .

Из спецификации C # :

Префикс «@» позволяет использовать ключевые слова в качестве идентификаторов, что полезно при взаимодействии с другими языками программирования. Символ @ на самом деле не является частью идентификатора, поэтому идентификатор может рассматриваться в других языках как обычный идентификатор без префикса. Идентификатор с префиксом @ называется дословным идентификатором. Использование префикса @ для идентификаторов, не являющихся ключевыми словами, разрешено, но настоятельно не рекомендуется из соображений стиля.

25
ответ дан 1 December 2019 в 06:59
поделиться

Да, добавьте к имени префикс @. т.е. @public

8
ответ дан 1 December 2019 в 06:59
поделиться

Если ввести с заглавной буквы public в Public , это не будет распознано как ключевое слово. Ключевые слова чувствительны к регистру.

Однако в качестве общей практики использовать имена, которые являются ключевыми словами (даже если они различаются по регистру), является плохой идеей, поскольку это может вызвать путаницу или даже незначительные дефекты, если ключевое слово случайно используется вместо идентификатора.

Также можно использовать @ в определенных контекстах (например, в объявлениях переменных или членов), чтобы использовать зарезервированные слова как не ключевые слова. Однако это не обычная практика и должна использоваться только в крайнем случае, когда вы не можете использовать другое имя.

Итак, в вашем случае вы также можете использовать @public , чтобы использовать зарезервированное слово в качестве идентификатора перечисления.

Если вы решили использовать @ , имейте в виду, что этот символ используется в вашем исходном коде только для отличия идентификатора от зарезервированного слова. Для внешнего мира (и в таких методах, как Enum.Parse () ) имя значения перечисления просто public .

7
ответ дан 1 December 2019 в 06:59
поделиться

В VB.Net квадратные скобки [...] используются для обозначения ключевого слова как идентификатора. Пример:

Public Sub Test(ByVal [public] As String)
  MessageBox.Show("Test string: " & [public])
End Sub
0
ответ дан 1 December 2019 в 06:59
поделиться

Это не лучшая идея. Вместо этого добавьте в перечисление дополнительную информацию:

PublicAccess и т. Д.

0
ответ дан 1 December 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: