В экземпляре объекта не задана ссылка на объект - PullRequest
0 голосов
/ 28 апреля 2011

Получение этой ошибки по этому коду:

string pname = null;
pname = ag.FirstOrDefault().arrangement.parent.name;

при вызове строки pname = ag.FirstOrDefault .....

Поле parent.name пустое (пустое),что хорошо, я хочу получить пустую (нулевую) строку в таком случае.Как я могу избавиться от ошибки?

Ответы [ 4 ]

6 голосов
/ 28 апреля 2011

Либо ag равно нулю, вызов FirstOrDefault возвращает ноль, arrangement равно нулю или parent равно нулю.

Только вы можете определить, кто из них на самом деле является виновником.

0 голосов
/ 28 апреля 2011

Если свойство ag.FirstOrDefault (). Layout.parent.name имеет значение null, это означает, что объект ag также имеет значение null. По этой причине вы получаете ошибку ссылки на объект.

Ответ, который дали Леоны, - это то, что я собирался предложить. Вам нужно провести некоторое исследование этой проблемы, это одна из самых простых вещей, которую следует избегать (пытаясь ссылаться на нулевой объект) в программировании.

0 голосов
/ 28 апреля 2011

Вы не можете получить доступ к свойствам нулевого объекта.Если ag.FirstOrDefault () вернет значение null, вы не сможете получить доступ к arrangement.

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

Возможно, вам потребуется выполнить дополнительную проверку на ноль.

0 голосов
/ 28 апреля 2011

try

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 (). Layout.parent.name имеет тип nullable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...