2009-06-10 32 views
3

Gibt es eine Möglichkeit, dass ich meine enum standardmäßig als ints machen kann? also muss ich es nicht überall tippen? Grundsätzlich verwende ich es als eine Liste von const Werten.C# enums als int

+0

Dupe? http://stackoverflow.com/questions/577946/can-i-vermeiden-casting-an-enum-value-when-itry-to-use-or-return-it – Oskar

+1

Oskar. Aber ich versuche nicht, die Typumwandlung zu vermeiden. Ich hasse es einfach, die zusätzliche Syntax von const int einzugeben, und ich weiß, [Flag] kann das enum-Verhalten ändern, so dass ich hoffte, etwas Ähnliches zu finden. –

Antwort

7

Nein, wenn Sie eine Enumeration deklariert haben, ist ihr Standardwert eine Enumeration, und eine explizite Umwandlung ist erforderlich, um den int-Wert zu erhalten. Wenn Sie das Enum als const-Werte verwenden, warum verwenden Sie keine const-Werte? Wenn Sie eine Trennung wünschen, können Sie eine Struktur erstellen, die nur diese const-Werte enthält.

8

Nr

Wenn Sie wirklich eine Gruppe von int Konstanten müssen, dann eine statische Klasse verwenden:

public static class Constants { 
    public const int ConstantOne = 42; 
    public const int ConstantTwo = 42; 
    ... 
} 
1

Wenn Sie wirklich wollen, dass Sie eine Erweiterung Methode, wie die folgenden erstellen könnten für Aufzählungen

public static int ToInt(this Enum obj) 
{ 
    return Convert.ToInt32(obj); 
} 

Dann könnten Sie es wie folgt aus

verwenden