2014-08-30 3 views
0

어떻게 값을 무시하고 구성원의을 입력 할 수 있습니까?C# 값을 무시한 회원 유형 가져 오기?

public static class Program 
{ 

    public static String a {set; get;} 

    public static void Main() 
    { 
     a = null; 
     a.GetType(); //Cant do that, it's null, how can i get "String"? 
    } 

} 
+0

당신이 그것을 사용하기 전에 변수를 선언해야합니다. –

+0

@AsadAli 무엇을 의미합니까? – user3325976

+0

변수'a'가 선언되지 않았으므로 사용할 수 없습니다. 'a' 속성을 사용하려고하면 아무 것도 반환하지 않습니다. –

답변

4

인스턴스없이 그것의 유형을 얻을 수있는 유일한 방법은 선언 형식을 사용하고 있습니다 :

var type = typeof(Program) 
    .GetProperty("a", BindingFlags.Static | BindingFlags.Public) 
    .PropertyType; 
+0

이것이 멋지다. 문자열을 가진 acessing 멤버없이 할 수 있겠지만 대신 멤버의 참조 자체를 사용 하는가? – user3325976

+0

또는 회원의 이름을 참조 할 수 있습니까? – user3325976

+0

@ user3325976 : 그렇습니다. 람다 ('a' 대신에'() => a')와 표현식 트리를 쓸 수 있습니다. –