[解決済み] 継承によるenumの拡張
2023-03-14 08:12:34
質問
enumの概念に反すると思いますが、C#/Javaでenumを拡張することは可能でしょうか? 私は、enum に新しい値を追加するという意味でも、既存の enum を継承するという OO の意味でも、quot; extend" を意味します。
Java では、かなり最近 (Java 5?) にそれらを得たばかりなので、それは不可能だと仮定します。 しかし、C# はおかしなことをしたい人に寛容なようなので、何らかの方法で可能かもしれないと思いました。 おそらく、リフレクションを介してハックアップすることができます(実際にその方法を使用するわけではありませんが)?
私は必ずしも与えられたメソッドを実装することに興味があるわけではなく、それが思い浮かんだときに私の好奇心を刺激しただけです :-)
どのように解決するのですか?
Enumsを拡張できないのは、ポリモーフィズムの問題につながるからです。
値A, B, Cを持つEnum MyEnumがあり、値Dを持つMyExtEnumとして拡張したとします。
あるメソッドが、例えばパラメータとして、どこかで myEnum 値を期待しているとします。それはサブタイプであるため、MyExtEnum 値を供給することは合法であるはずですが、値が D であることが判明したときにどうするつもりでしょうか?
この問題を解消するために、列挙型の拡張は違法です。
関連
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み] Java enumのメンバーを比較する:==またはequals()?
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] C#の[Flags]Enum属性の意味とは?
-
[解決済み] JavaScriptSerializer - 列挙型を文字列としてJSONシリアライズする
-
[解決済み] Enum "Inheritance" (継承)
-
[解決済み】TをEnumに拘束するGenericメソッドの作成
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み] 2つのリストを結合する
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み] Enum "Inheritance" (継承)