那么合并运算符?允许方便地处理空对象(IE.MyDisplayString = MyString ??“n / a”;)
但是有一个很好的花哨的操作符来处理对象属性的类似情况吗?例如,假设您感兴趣的属性是属性的属性,如:MyDataObject.MySubModel.MyProperty
如果MyProperty为null,则需要合并为“n / a”.您可以使用 ??这里,但是如果MyDataObject为null或MyDataObject.MySubModel怎么办?
在尝试获取元素的可选属性和元素时,这也会出现XML. IE:MyString = MyElement.Attribute(“MyOptionalAttribute”).值? “N / A”;如果属性不存在则失败.
处理这种情况有一种很好的方式吗?
解决方法
Is there a nice fancy way of handling
this scenario?
You are not the first one要求this feature.一种方法是编写a “With” extension method来获取属性值,因为扩展方法可以处理在空引用上调用.代替
thing.Foo.Bar
你会写的
thing.With(x => x.Foo).With(x => x.Bar)