의 인스턴스로 설정되지 않았습니다 빈 (null)입니다. 괜찮 으면이 경우 빈 (null) 문자열을 가져 오려고합니다. 오류를 제거하려면 어떻게해야합니까?개체 참조가이 코드에이 오류를 얻기 객체
답변
는
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이
어느 ag
에서, FirstOrDefault
null 인 nullable 형식을하다 호출이 null을 반환하면 arrangement
이 null이거나 parent
이 null입니다.
당신 만이 그 중 어느 것이 실제로 범인인지 판단 할 수 있습니다.
+1 사용을 권합니다. 디버거 또는 여러 문장으로 나눕니다. – Euphoric
null 개체의 속성에 액세스 할 수 없습니다. ag.FirstOrDefault()가 null을 반환하면 arrangement
에 액세스 할 수 없습니다.
var temp = ag.FirstOrDefault();
string pname = (temp!= null) ? temp.arrangement.parent.name : null;
추가로 널 검사가 필요할 수 있습니다.
ag.FirstOrDefault(). arrangement.parent.name 속성이 null 인 경우 객체 ag도 null이라는 것을 의미합니다. 이 때문에 개체 참조 오류가 발생합니다.
레온이 제공 한 대답은 실제로 제가 제안하려고했던 것입니다. 프로그래밍에서 널 객체를 참조하려고하는 것을 피하는 가장 간단한 방법 중 하나 인 문제에 대해 조사해야합니다.
반드시 'ag'가 null임을 의미하지는 않습니다. 'ag'는 null 일 수 있습니다. 'FirstOrDefault'의 출력은 null 일 수 있습니다; 'arrangement' 멤버는 null 일 수 있습니다; 'parent' 멤버는 null 일 가능성이 있습니다. – LukeH
'ag.FirstOrDefault()'가 null을 반환하면 예외가 throw됩니다. – Leons
filed.null (null) -이 줄은 op로 작성됩니다. ans를 업데이트하고 있습니다. –