[C#]継承できないenumの代わりはClass内Classで

Ad

解決したい問題

  • あるクラスはいくつかのステートを持つが、汎用的にするために多くのステートを定義すると、使わない場面も増えるしメンテが大変なので、継承を使って分けたい。
    けれどもenumは動的に生成するのがあまり得意ではない。
  • 特定のクラスとその継承クラスでなら共通化された固定値にアクセス可能でかつ継承したクラス自身で追加の定数定義をおこなえないものか。
  • ついでにいうと、Switch()の分岐でも使いたい。

enumは継承できない

そもそも継承するつもりはなかったのだけれど、他の言語では継承できるものもあるようで、ちょっとうらやましく思ったり。
C++とかJavaとか?

構造体も継承できない

構造体も同様でした。

クラス作ろうか

というわけで定数のみ保持するクラス作成をすることに。
で色々迷ったあげくに採用したのは次のような形。

const と static

なぜstaticではないか。staticだと継承不可だしswitchで使えないから。

敬称略
敬称略

posted with amazlet at 13.09.11
EMI MUSIC JAPAN INC. (2004-04-01)
売り上げランキング: 327,129

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です