げんさん日記

プログラミングで気付いた事等を書きます。

enumの値を簡単に取得する。

2019年11月06日 09時16分31秒 | C#
enumを使う時にenumからintに変換することがあると思います。その辺りを簡単にできるようにしましたので下記に記します。

下記のenumがあります。
public enum EncodeType
{
  [Description("shift_jis")]
  ShiftJis = 0,
  [Description("utf-8")]
  UTF8 = 1,
}

Enum値を取得する拡張クラスを作成します。
public static int Value(this Enum value)
{
  // Fieldを取得します。
  var fi = value.GetType().GetField(value.ToString());

  // Fieldから値を取得し返します。
  return (int)fi.GetValue(null);
}

使用例
public void OnClick()
{
  int value = EncodeType.ShiftJis.Value();
}
わざわざintでキャストしなくても取れるようになりました。