列挙型「継承」質問する

列挙型「継承」質問する

低レベルの名前空間に列挙型があります。低レベルの名前空間に、その低レベル列挙型を「継承」するクラスまたは列挙型を提供したいと思います。

namespace low
{
   public enum base
   {
      x, y, z
   }
}

namespace mid
{
   public enum consume : low.base
   {
   }
}

私はこれが可能か、あるいは列挙型の消費の代わりになり、列挙型の抽象化レイヤーを提供しながらも、そのクラスのインスタンスが列挙型にアクセスできるようにするなんらかのクラスが存在することを期待しています。

ご意見は?

編集: これをクラス内の const に切り替えていない理由の 1 つは、使用する必要があるサービスに低レベルの列挙型が必要であることです。構造を列挙型として定義する WSDL と XSD が提供されています。サービスは変更できません。

ベストアンサー1

これは不可能です。列挙型は他の列挙型から継承できません。実際、すべての列挙型は から継承する必要がありますSystem.Enum。C# では、構文によって列挙型値の基になる表現を変更できるため、継承のように見えますが、実際には System.enum から継承しています。

セクション8.5.2を参照CLI 仕様詳細については、仕様書の関連情報をご覧ください。

  • すべての列挙型は以下から派生する必要がありますSystem.Enum
  • 上記の理由により、すべての列挙型は値型であり、したがってシールされている。

おすすめ記事