Wie erstelle ich eine enum mit einem Nullwert
ex:
%Vor%wobei Kein Wert null oder String.Empty
istSie können Folgendes versuchen: -
%Vor%oder Sie können dies versuchen: -
%Vor% 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% 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.
Sie können einen 0
Verweis auf eine Enumeration haben, wenn Sie eine nullable Instanz deklarieren - null
.
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.