Initialisiere die Enumeration mit einem Nullwert

8

Wie erstelle ich eine enum mit einem Nullwert

ex:

%Vor%

wobei Kein Wert null oder String.Empty

ist     
Hélder Gonçalves 28.11.2012, 12:40
quelle

5 Antworten

15

Sie können Folgendes versuchen: -

%Vor%

oder Sie können dies versuchen: -

%Vor%     
Rahul Tripathi 28.11.2012, 12:44
quelle
5

Wie alle anderen Antworten sagten, können Sie nicht einen enum-Wert haben, der null ist. Was Sie können tun, ist ein Description -Attribut (wie Ihre StringValue ) hinzuzufügen, das einen Nullwert hat.

Zum Beispiel:

%Vor%

Sie können die Beschreibung der Enum mit der folgenden Funktion erhalten:

%Vor%

Verwendung:

%Vor%     
Blachshma 28.11.2012 12:53
quelle
4

benutze das "?" oeprator für einen NULL-fähigen Typ !!

%Vor%     
shaouari 28.11.2012 12:48
quelle
4

Alle Aufzählungstypen sind Wertetypen und die verschiedenen Mitglieder werden auch aus den Mitgliedstypen abgeleitet (die zulässigen Typen sind byte , sbyte , short , ushort , int , uint ,% co_de) %, oder long - wie dokumentiert ).

Dies bedeutet, dass Mitglieder einer Enumeration nicht ulong sein können.

Eine Möglichkeit, mit einem default null -Wert umzugehen, besteht darin, den Wert enum als ersten Wert zu setzen und auf einen negativen Wert (für signierte Enums) oder None zu setzen.

%Vor%

Sie können einen 0 Verweis auf eine Enumeration haben, wenn Sie eine nullable Instanz deklarieren - null .

    
Oded 28.11.2012 12:47
quelle
2

Es gibt keine "Aufzählung mit einem Nullwert". Eine Aufzählung in C # ist nur eine benannte Ganzzahl. In Ihrem Fall ist None nur ein Alias ​​für 2 (der Vollständigkeit halber ist MyX 0 und MyY ist 1 ). Standardmäßig ist der zugrunde liegende Datentyp einer Aufzählung int , es können jedoch auch andere ganzzahlige Basistypen unterschiedlicher Größe / Vorzeichen verwendet werden.

Wenn Sie eine Null-Enumeration wünschen, müssen Sie MyEnum? , aka Nullable<MyEnum> verwenden.

    
Marc Gravell 28.11.2012 12:48
quelle

Tags und Links