Frage:
Warum erlaubt der Compiler in C# die Zuweisung mehrerer Enums? auf den gleichen Wert? Ist es in solchen Fällen ratsam, stattdessen eine Struktur zu verwenden?
Antwort:
Eine Enumeration in C# ist im Wesentlichen eine Struktur, die von der System.Enum-Basisklasse erbt. Hinter den Kulissen werden die Enum-Werte als Konstanten innerhalb der Struktur definiert. Beispielsweise die folgende Enum-Definition:
public enum Color { Red = 1, Blue = 1, Green = 1 }
Entspricht dem folgenden Pseudo-C#-Code:
public struct Color : System.Enum { public const int Red = 1; public const int Blue = 1; public const int Green = 1; }
Da es kein Problem mit einem Typ gibt, der mehrere Konstanten mit demselben Wert enthält , ist die Definition von Enumerationen mit nicht eindeutigen Werten zulässig. Es gibt jedoch einige Einschränkungen:
Während es technisch gesehen legal ist, nicht eindeutige Enum-Werte zu verwenden , es allgemein entmutigt. Erwägen Sie stattdessen die Verwendung einer Struktur, mit der Sie explizite Mitglieder mit eindeutigen Werten definieren können. Allerdings können Strukturen im Vergleich zu Aufzählungen einen höheren Speicheraufwand verursachen. Setzen Sie sie daher entsprechend Ihren Anforderungen mit Bedacht ein.
Das obige ist der detaillierte Inhalt vonWarum erlaubt C# nicht eindeutige Enum-Werte und sollte ich stattdessen eine Struktur verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!