「C#」Enum.ToObjectで数値をenum値に変換する

書式

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Enum名 res = (Enum名)Enum.ToObject(typeof(Enum名), 値);
Enum名 res = (Enum名)Enum.ToObject(typeof(Enum名), 値);
Enum名 res = (Enum名)Enum.ToObject(typeof(Enum名), 値);

数値をenum値に変換するには Enum.ToObject()の引数に typeof(<enum名>)と数値を指定します。
enum値に存在しない数値を指定しても例外は発生しません。
Enum.ToObject()を使用して、数値をenum値に変換します。
使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
using System;
namespace EnumDemo
{
class Program
{
static void Main(string[] args)
{
int val = 9;
// 数値をenum値に変換
AuthEnum res = (AuthEnum)Enum.ToObject(typeof(AuthEnum), val);
Console.WriteLine(res);
}
// enum型の定義
public enum AuthEnum :int
{
SUCCESS = 10,
WARN = 20,
FAILURE = 9
}
}
}
using System; namespace EnumDemo { class Program { static void Main(string[] args) { int val = 9; // 数値をenum値に変換 AuthEnum res = (AuthEnum)Enum.ToObject(typeof(AuthEnum), val); Console.WriteLine(res); } // enum型の定義 public enum AuthEnum :int { SUCCESS = 10, WARN = 20, FAILURE = 9 } } }
using System;

namespace EnumDemo
{
  class Program
  {
    static void Main(string[] args)
    {
      int val = 9;
      // 数値をenum値に変換
      AuthEnum res = (AuthEnum)Enum.ToObject(typeof(AuthEnum), val);
      
      Console.WriteLine(res);    
    }
    // enum型の定義
    public enum AuthEnum :int
    {
       SUCCESS = 10,
       WARN = 20,
       FAILURE = 9
     }
  }
}

実行結果
FAILURE

C#

Posted by arkgame