Функциональность ключевых слов С#

Есть ли способ в С# отключить функциональность ключевых слов в коде? В моем случае я хочу определить один из моих элементов перечисления как float, что явно заставляет Visual Studio немного смутить:)

public enum ValidationType
{
 email,
 number,
 float,
 range
}
4 ответа

Технически вы можете сделать это так:

public enum ValidationType
{
 email,
 number,
 @float, // note "@" before "float"
 range
}

однако, даже если возможно использовать ключевые слова в качестве порядковых идентификаторов, это не очень хорошая практика. Вероятно, лучшим решением в вашем случае является использование:

public enum ValidationType
{
 Email,
 Number,
 Float, 
 Range
}


Нет. Ключевые слова являются предопределенными зарезервированными идентификаторами, которые имеют специальные значения для компилятора. Они не могут использоваться в качестве идентификаторов в вашей программе, если они не включают @ в качестве префикса.

Например:

  • @if является допустимым идентификатором, но
  • if не потому, что if - это ключевое слово.

https://msdn.microsoft.com/en-us/library/x53a06bb.aspx


Вам нужно использовать @ перед зарезервированным ключевым словом, как показано ниже:

public enum ValidationType
{
 email,
 number,
 @float,
 range
}


Вам не нужно ничего отключать, вы можете просто сигнализировать компилятору, используя @ перед именем ключевых слов:

public enum ValidationType
{
 email,
 number,
 @float,
 range
}

licensed under cc by-sa 3.0 with attribution.