2016-10-31 7 views
0

찾아 C#에서 그 이름으로 열거 클래스에 대해서 typeof를 사용 : 나는 그들의 이름을 열거 세트를 얻으려면나는 그런 코드를 구현하는 방법을 찾고 있어요

public enum Enum1 
{ 
    a=0,b 
} 

string enumName="Enum1"; 

Enum[] myEnum = (Enum[])Enum.GetValues(typeof(enumName)); 

을; 그러나 "typeof"부분은 작동하지 않습니다. 도와주세요.

+0

유형이 필요하면 Type.GetType (enumName)을 사용하십시오. 네임 스페이스를 prepend하는 것을 잊지 마십시오 (typeof (Enum1) .Namespace) –

답변

5

typeof은 컴파일 타임에 알려진 유형에만 분명히 작동하는 컴파일 타임 연산자입니다.

Enum[] myEnum = (Enum[])Enum.GetValues(Type.GetType(enumName)); 

은 당신이 아니라 전체 공간을 필요로 일반적으로거야하지만, 유의 사항 : 당신이 string 사용하여 특정 유형을로드해야하는 경우

, 당신은 대신 Type.GetType() 방법을 사용할 수 있습니다 클래스 이름. 예 : "MyNamespace.Enums.Enum1".

MSDN

관련 문제