首页 >后端开发 >C++ >C#枚举可以从其他枚举继承吗?

C#枚举可以从其他枚举继承吗?

DDD
DDD原创
2025-01-26 07:16:12635浏览

Can C# Enums Inherit from Other Enums?

枚举的“继承”

在 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 节中明确定义:

  • 所有枚举都必须派生自 System.Enum。
  • 由上所述,所有枚举都是值类型,因此是密封的(不能被继承)。

因此,在 C# 中不可能创建一个真正继承另一个枚举值的类或枚举。

以上是C#枚举可以从其他枚举继承吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn