#c# #object-reference
#c# #ссылка на объект
Вопрос:
Получение этой ошибки в этом коде:
string pname = null;
pname = ag.FirstOrDefault().arrangement.parent.name;
при вызове строки pname = ag.FirstOrDefault…..
Поданный parent.name пуста (null), что нормально, в таком случае я хочу получить пустую (null) строку. Как я могу избавиться от ошибки?
Ответ №1:
Либо ag
равно null, FirstOrDefault
вызов возвращает null, arrangement
равно null, либо parent
равно null.
Только вы в состоянии определить, кто из них на самом деле является преступником.
Комментарии:
1. 1 Я бы рекомендовал использовать debuger или разделить его на несколько инструкций.
Ответ №2:
Если свойство указано.FirstOrDefault().arrangement.parent.name равно null, это означает, что ag объекта также равен null. Это причина, по которой вы получаете ошибку ссылки на объект.
Предоставленный Леонсом ответ на самом деле является тем, что я собирался предложить. Вам нужно провести некоторое исследование проблемы, которой проще всего избежать (попытка ссылаться на нулевой объект) в программировании.
Комментарии:
1. Это не обязательно означает, что
ag
равно нулю.ag
может быть нулевым; выходные данныеFirstOrDefault
могут быть нулевыми;arrangement
элемент может быть нулевым;parent
элемент может быть нулевым.
Ответ №3:
Вы не можете получить доступ к свойствам нулевого объекта. Если указано.FirstOrDefault() вернет null, тогда вы не сможете получить доступ arrangement
.
var temp = ag.FirstOrDefault();
string pname = (temp!= null) ? temp.arrangement.parent.name : null;
Возможно, вам потребуется выполнить дальнейшую проверку null.
Ответ №4:
попробуйте
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 является обнуляемым типом
Комментарии:
1. Это вызовет исключение, если
ag.FirstOrDefault()
вернет null2. Поданный parent.name пуста (null) — эта строка написана op в любом случае, я обновляю свой ans