ホームページ > バックエンド開発 > C++ > C# 列挙型は他の列挙型から継承できますか?

C# 列挙型は他の列挙型から継承できますか?

DDD
リリース: 2025-01-26 07:16:12
オリジナル
576 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート