我有一个Expression看起来像这样:

obj => obj.Child.Name


其中Name是字符串。我想做的就是获取Name的值。我可以通过编译方法并调用它来解决问题,但是如果NullReferenceExceptionChild,则会抛出null。在这种情况下,是否有办法检查Child是否为null?

最佳答案

使用当前的C#版本5.0(或更低版本),您必须显式检查每个属性,例如:

if(obj != null && obj.Child != null)
{
  //get Name property
}


使用C#6.0,您可以使用Null conditional/propagation operator进行检查。

Console.WriteLine(obj?.Child?.Name);

09-09 19:59
查看更多