また言語が変わって VB.NET になったのだが…

*******ここから追記*******
ちなみに、DBとかXMLとかと紐付けるために、
Enumを全て連番固定値にするのは、仕方ないと思ってます。

私も、DBなどと紐付けるためのEnumの使い方に困ってます。

誰か、良い方法を教えて~~~~(>
~~~~~~~ここから引用~~~~~~~~~
●列挙型の定義
 Public Enum enumStatus
   OK = 1
   NG = 2
   ERR= 3
 End Enum

●特定の値(Value)に対する名称を取得する場合
 strName = System.Enum.GetName(GetType(enumStatus), 2).ToString
 Console.WriteLine(strName)
 >結果
  NG
~~~~~~~ここまで引用~~~~~~~~~


さて、上記のサンプルですが、文句を言いたいのが2点…

1.Enum型なんだから、宣言時に「OK = 1、NG = 2」…って代入するなっ!
何の為にEnum形使ってんだよ…そんな宣言なら、ただのconstで良いじゃないか…


2.「System.Enum.GetName(GetType(enumStatus), 2).ToString」この"2"って言う数字はなんだっ!?
Enum型で数字を直接指定するなんて、ご法度だろう!?


特に2番目のほうがイライラする。
そして今修正しているコードが、1,2両方を使ってる…むかつく…




ちなみに、自分なら下記にする。
~~~~~~~ここから私の修正案~~~~~~~~~
●列挙型の定義
 Public Enum enumStatus
   OK = 1
   NG
   ERR
 End Enum

●特定の値(Value)に対する名称を取得する場合
 strName = System.Enum.GetName(GetType(enumStatus), enumStatus.NG).ToString
 Console.WriteLine(strName)
 >結果
  NG
~~~~~~~ここまで私の代替案~~~~~~~~~


まぁ、名称を取ってくるコーディングがどれだけあるか微妙な気もするが…




ちなみに、宣言部は下記のようにするなら有りだと思う。
~~~~~~~ここから私の修正案~~~~~~~~~
●列挙型の定義
 Public Enum enumStatus
   OK = 10
   NG = 20
   ERR= 30
 End Enum
~~~~~~~ここまで私の代替案~~~~~~~~~



最終的に、Enum型で宣言した値は、Integerのハードコーディングで使用するなっ!
って事ですわ…


C#とか、Javaでも同じ事やってるやつ多いんだろうな…


コメント

このブログの人気の投稿

ヨドバシカメラの店舗購入履歴を見るには…

C# の WPF の DataGrid で 行を交互に背景色を変える+選択色を変える+カラムが無い所も変える…

Visual Studio の ホットリロードが動かない場合に確認するところ