2015-09-09 8 views
7

Gibt es eine Möglichkeit in C#, die Schlüsselwortfunktion im Code zu deaktivieren? In meinem Fall möchte ich eine meiner Enum Elemente definieren, wie float, die Visual Studio macht natürlich ein bisschen verwirrt :)C# Schlüsselwortfunktionalität deaktivieren

public enum ValidationType 
{ 
    email, 
    number, 
    float, 
    range 
} 
+1

Sie können in der Regel dieses Problem zu beheben, indem das Schlüsselwort mit einer '@ prefixing' (zB '@ float') – Iridium

+4

Die Namenskonvention für Enums lautet Großbuchstaben (E-Mail, Nummer, Float, Bereich) –

+0

Wie oben, wenn Sie die richtigen Großbuchstaben verwenden, verschwindet dieses Problem. –

Antwort

7

Technisch kann man es so tun:

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

aber auch wenn es möglich ist zu verwenden Schlüsselwörter als ordinal Bezeichner ist es kein gute Praxis. Wahrscheinlich eine bessere Lösung in Ihrem Fall ist nutzen:

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

Sie brauchen nichts zu deaktivieren, können Sie einfach signalisieren dem Compiler von @ vor der Schlüsselwörter Namen:

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

Nr Keywords sind vordefiniert, reservierte Bezeichner, die eine besondere Bedeutung für den Compiler haben. Sie können nicht als Bezeichner in Ihrem Programm verwendet werden, es sei denn, sie enthalten @ als Präfix.

Zum Beispiel:

  • @if ist ein gültiger Bezeichner aber
  • if ist nicht, weil if ein Schlüsselwort ist.

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

5

Sie müssen @ vor reserviertem Schlüsselwort verwenden, wie folgt vor:

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