0

在此代码上出现此错误:

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

当调用行 pname = ag.FirstOrDefault.....

归档的 parent.name 为空(null),这很好,我想在这种情况下得到一个空(null)字符串。我怎样才能摆脱错误?

4

4 回答 4

6

要么ag为空,FirstOrDefault调用返回空,要么为空,arrangement要么parent为空。

只有您能够确定其中哪一个实际上是罪魁祸首。

于 2011-04-28T11:33:31.070 回答
0

If the property ag.FirstOrDefault().arrangement.parent.name is null it means the object ag is null also. This is the reason you are getting object reference error.

The answer Leons provided is actually what I was going to suggest. You need to do some research on the problem its one of the simplest thing to avoid ( trying to reference a null object ) in programming.

于 2011-04-28T11:42:31.037 回答
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 是可为空的类型

于 2011-04-28T11:33:07.500 回答
0

您不能访问空对象的属性。如果 ag.FirstOrDefault() 将返回 null,那么您将无法访问arrangement.

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

您可能需要进行进一步的空值检查。

于 2011-04-28T11:37:49.377 回答