0
私は、オブジェクトの名前と値を与え、ビットのテキスト名を返す関数を書いています。これらのビット名はさまざまな列挙型で定義されています。ここに私の機能の本質があります。後でキャストするために変数に列挙型を配置する方法はありますか?
string BitName(string object_name, long bit_value) {
string bit_name="";
switch(object_name) {
case "STATUS_WORD" :
bit_name = ((eStatusWord)bit_value).ToString();
break;
case "TRAJ_STATUS" :
bit_name = ((eTrajectoryStatus)bit_value).ToString();
break;
}
return bit_name;
}
この単純なアプローチはうまくいきましたが、多くの複製されたコードを作成するアクションが追加されました。
最低限、enum型を変数に入れてキャストに使用したいと思います。次のようなものがあります。
Type my_type = eStatusWord;
bit_name = ((my_type)bit_value).ToString();
// addition actions that are type dependent
可能であれば、ディクショナリはswitch文を置き換えることができます。
'辞書 '例えば、あなたは' Convert.ChangeType() 'を使うかもしれません。 –