2011-04-28 5 views

답변

0

var obj = ag.FirstOrDefault(); 
if(obj !=null) 
pname = obj.arrangement.parent.name ?? String.Empty; 

을 시도하거나

//This will set the variable to null: 
    var obj = ag.FirstOrDefault(); 
    if(obj !=null) 
    pname = Convert.ToString(obj.arrangement.parent.name); 

주를 시도 할 수 있습니다. ag.FirstOrDefault()를 arrangement.parent.name이

+2

'ag.FirstOrDefault()'가 null을 반환하면 예외가 throw됩니다. – Leons

+0

filed.null (null) -이 줄은 op로 작성됩니다. ans를 업데이트하고 있습니다. –

6

어느 ag에서, FirstOrDefault null 인 nullable 형식을하다 호출이 null을 반환하면 arrangement이 null이거나 parent이 null입니다.

당신 만이 그 중 어느 것이 실제로 범인인지 판단 할 수 있습니다.

+0

+1 사용을 권합니다. 디버거 또는 여러 문장으로 나눕니다. – Euphoric

0

null 개체의 속성에 액세스 할 수 없습니다. ag.FirstOrDefault()가 null을 반환하면 arrangement에 액세스 할 수 없습니다.

var temp = ag.FirstOrDefault(); 
string pname = (temp!= null) ? temp.arrangement.parent.name : null; 

추가로 널 검사가 필요할 수 있습니다.

0

ag.FirstOrDefault(). arrangement.parent.name 속성이 null 인 경우 객체 ag도 null이라는 것을 의미합니다. 이 때문에 개체 참조 오류가 발생합니다.

레온이 제공 한 대답은 실제로 제가 제안하려고했던 것입니다. 프로그래밍에서 널 객체를 참조하려고하는 것을 피하는 가장 간단한 방법 중 하나 인 문제에 대해 조사해야합니다.

+0

반드시 'ag'가 null임을 의미하지는 않습니다. 'ag'는 null 일 수 있습니다. 'FirstOrDefault'의 출력은 null 일 수 있습니다; 'arrangement' 멤버는 null 일 수 있습니다; 'parent' 멤버는 null 일 가능성이 있습니다. – LukeH