VisualStudio/C#

[C#] Enum타입 리플렉션(Reflection)사용하여 값 받아오는 방법

usingsystem 2023. 2. 16. 09:03
728x90
  • 정의한 Enum
     enum TestEnum
        {
            test1,
            test2,
            test3,
        }

  • Enum -> string
string name1 = Enum.GetName(typeof(TestEnum), 0);
string name2 = Enum.GetName(typeof(TestEnum), TestEnum.test1);
Console.WriteLine($"{name1}, {name2}");
  • Enum -> string[]
  string[] names = Enum.GetNames(typeof(TestEnum));
foreach (string name in names)
{
	Console.Write($"{name}, ");
}

  • string -> Enum
TestEnum myenum1 = (TestEnum)Enum.Parse(typeof(TestEnum), "test1");
Console.WriteLine((int)myenum1);
  • string -> Enum 디테일
static void Main(string[] args)
{
	TestEnum myenum2 = StringToEnum<TestEnum>("test1");
    Console.WriteLine((int)myenum2);
}
public static T StringToEnum<T>(string e)
{
	return (T)Enum.Parse(typeof(T), e);
}
728x90