두 개의 코드 샘플이 있습니다. 1 개 (살)이 올바른 결과를 돌려 주어, 1 개 (살)이 null 참조 예외를 throw합니다. 차이점이 뭐야? 람다 표현식에 대한 변수를 캡처 할 때 마술 같은 일이 일어나고 있음을 알고 있습니다. 그러나 여기서 어떤 일이 일어나고 있는지 이해하지 못합니다.람다 식과 null 입력 가능 유형
int? x = null;
bool isXNull = !x.HasValue;
// this works
var result = from p in data.Program
where (isXNull)
select p;
return result.Tolist();
// this doesn't
var result2 = from p in data.Program
where (!x.HasValue)
select p;
return result2.ToList();
아마도'return' 문의 전에 x 값을 변경하고 있습니까? –
아니요. 전체 코드 샘플입니다. – Mathew