2011-08-29 2 views

답변

2

MemberInfo입니다. 이들 각각은 MemberInfo을 상속하는 고유 한 유형을 가지며 각각 MethodInfo, PropertyInfoFieldInfo입니다. - 함수를 호출하고 수익을 얻으려면

TL, 아래의 DR 버전 : 값이 null의 경우 확인하려면 바로이 작업을 수행 :

if (value == null) 
{ 
    ... 
} 

위의 적절한 방법을 호출의 값을 갖게되면, 당신은 것을 사용할 수 있습니다 비교를위한 값. Nullable<T>이 박스형 일 경우 특별한 규칙이 적용됩니다. Nullable<T>의 "null"값이 박스 화되면 실제 null 참조가 반환됩니다. null이 아닌 Nullable<T>이 박스로 묶인 경우 기본 값은 박스형입니다 (즉, Nullable<T>의 인스턴스는 실제로 힙에 박스로 묶이지 않습니다). 당신은 런타임의 원인이되는 (원시 형에 직접 캐스트 할 수 있습니다, 당신이 null 값이 있는지 확인 null에 대해 비교 할 수 있기 때문에 이러한 특수 규칙

int? foo = 10; 
int? bar = null; 
int baz = 10; 

object value; 

value = foo; // The integer 10 is boxed and placed on the heap 
value = bar; // Nothing is boxed and value is set to null 
value = baz; // The integer 10 is boxed and placed on the heap 

:이 예는 조금 명확하게 할 수있다 예외는 널 (null)의 여부를 해당 유형의), 또는 당신은 당신의 널 (NULL) 값 :

if (value == null) 
{ 
    ... 
} 

또는

int val = (int)value; 
당신을 다시 줄 것이다 nullable 형식, 다시 조건부 캐스트를 할 수 있다면

또는

int? val = value as int?; 
+0

+1 완전성 –

1

은 당신의 가정 MemberInfo는 값을 획득하는 수단이없는 PropertyInfo

PropertyInfo prop = ... 
object value = prop.GetValue(instance, null); 
if (value != null) 
{ 
    ... 
} 
관련 문제