c# enum 文字列 設定 - intをenumにキャストするにはどうすればよいですか?

c# enum 文字列 属性 / c# / enums / casting / int

C#で intenum にキャストするにはどうすればよいですか?

Peter Mortensen



Answer #1

これは、フラグ列挙を意識した安全な変換方法です。

public static bool TryConvertToEnum<T>(this int instance, out T result)
  where T: Enum
{
  var enumType = typeof (T);
  var success = Enum.IsDefined(enumType, instance);
  if (success)
  {
    result = (T)Enum.ToObject(enumType, instance);
  }
  else
  {
    result = default(T);
  }
  return success;
}