オブジェクトのメンバー変数である列挙型があります。列挙型の正確なタイプはわかりませんが、から派生しているだけですSystem.Enum
。列挙型の基になる数値を設定したいと思います。言い換えると:
Enum e;
// ...
e = 42; // Doesn't comple
これは可能ですか?それは反射で行うことができますか?
編集1:列挙型はより大きなデータ構造の一部であるため、Enum.ToObject()を使用して新しい値を作成することは適切ではありません。
編集2:列挙型がオブジェクトのメンバー変数であることを明確にしました。
編集3:数人のコメント投稿者がより多くのコンテキストを求めているので、ここに要約を示します。UIコントロール(テキストボックスなど)をオブジェクトデータモデルの対応するフィールドに関連付けることになっている汎用コードがあります。UIが変更されると、モデルが更新され、その逆も同様です。私はこれをコンボボックスと列挙の間のマップに拡張することを検討していました。ここで、列挙型は選択したコンボエントリのインデックスに設定されます。列挙型の基になる値から選択した項目を設定するのは簡単ですが、これとは逆に問題が発生します。これは不可能だと私はかなり確信していましたが、尋ねる価値があると思いました。