나는 약간의 디버깅을하고있는 중이 야 얻을, 그래서 나는 기본적으로 수행하는 간단한 라인을 가지고있는 EventArgs 값나는 NullReferenceException이
기록 할 :
logLine = "e.Value: " + IIf(e.Value Is Nothing, "", e.Value.ToString())
방법 I을 IIF 함수를 이해하고, e.Value가 Nothing (null)이면 빈 문자열을 반환하고 그렇지 않으면 값의 .ToString을 반환해야합니다. 그러나 나는 NullReferenceException을 얻고있다. 이것은 나에게 이해가되지 않는다.
아이디어가 있으십니까?
또한보십시오 : (가) 형태 보증이됩니다. IIf()는 그렇지 않습니다. –
Date 및 Boolean과 같은 유형의 단락 회로를 사용하면서도 여전히 Null 허용 유형에 할당하는 경우에도 문제가 발생합니다. 예를 들어, 'If'를 사용하여 Nullable 부울 값으로 'Nothing'을 반환하고 싶지만 여전히 'False'를 반환합니다. 미친 것 내가 If-Else-End로 라인을 나눌 때 로직이 예상대로 작동하면. – atconway
@atconway, VB에서'Nothing'은 C#에서'null'보다는'default'와 같습니다.'Boolean'이 함축 된 타입 인 컨텍스트에서 사용될 때, 그 값은'null' 대신에'False'입니다./당신이 일반적으로 생각하는 것처럼 아무것도 (http://stackoverflow.com/q/1828173/2688). 원하는 결과를 얻으려면'If '의 한면을 올바른 유형 (예 :'부울')으로 변환해야합니다. 마찬가지로 C#에서 한면을 캐스팅해야합니다 (그렇지 않은 경우 컴파일 오류가 발생합니다). – bdukes