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

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

DDD
发布: 2025-01-26 07:16:12
原创
611 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板