枚举的“继承”
在 C# 中,枚举不能继承自其他枚举。这是由于 CLI 中枚举的实现方式,所有枚举都必须派生自 System.Enum 基类。
看起来像继承自另一个枚举的枚举语法,实际上是对枚举底层值的表示方式改变,而不是真正的继承。例如:
<code class="language-c#">namespace low { public enum Base { X, Y, Z } } namespace mid { public enum Consume : Base { // 隐式继承 Base 的值 } }</code>
这种语法可能会产生误导,因为它暗示 Consume 继承自 Base。然而,实际上,Consume 仍然是一个单独的枚举,它继承自 System.Enum。
这种行为在 CLI 规范的 8.5.2 节中明确定义:
因此,在 C# 中不可能创建一个真正继承另一个枚举值的类或枚举。
以上是C#枚举可以从其他枚举继承吗?的详细内容。更多信息请关注PHP中文网其他相关文章!