„Vererbung“ von Aufzählungen
In C# können Aufzählungen nicht von anderen Aufzählungen erben. Dies liegt an der Art und Weise, wie Aufzählungen in der CLI implementiert werden. Alle Aufzählungen müssen von der Basisklasse System.Enum abgeleitet sein.
Eine Aufzählungssyntax, die so aussieht, als wäre sie von einer anderen Aufzählung geerbt, ist in Wirklichkeit eine Änderung in der Art und Weise, wie der zugrunde liegende Wert der Aufzählung dargestellt wird, und keine echte Vererbung. Zum Beispiel:
<code class="language-c#">namespace low { public enum Base { X, Y, Z } } namespace mid { public enum Consume : Base { // 隐式继承 Base 的值 } }</code>
Diese Syntax kann irreführend sein, da sie impliziert, dass Consume von Base erbt. Tatsächlich ist Consume jedoch immer noch eine separate Enumeration, die von System.Enum erbt.
Dieses Verhalten ist in Abschnitt 8.5.2 der CLI-Spezifikation klar definiert:
Daher ist es in C# nicht möglich, eine Klasse oder Aufzählung zu erstellen, die tatsächlich den Wert einer anderen Aufzählung erbt.
Das obige ist der detaillierte Inhalt vonKönnen C#-Enums von anderen Enums erben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!