因此,有一个合并运算符??,允许方便地处理空对象(IE. MyDisplayString = MyString ?? "n/a";)
但是有一个很好的花哨的操作符来处理对象属性的类似情况吗?例如,假设您感兴趣的属性是属性的属性,例如:MyDataObject.MySubModel.MyProperty
如果MyProperty为null,则需要合并为"n/a".你可以??在这里使用,但如果MyDataObject是null或MyDataObject.MySubModel?
在尝试获取元素的可选属性和元素时,这也会出现XML.IE:MyString = MyElement.Attribute("MyOptionalAttribute").Value ?? "n/a"; 如果属性不存在则失败.
处理这种情况有一种很好的方式吗?
处理这种情况有一种很好的方式吗?
您不是第一个要求此功能的人.一种方法是编写"With"扩展方法来获取属性值,因为扩展方法可以处理在null引用上调用.代替
thing.Foo.Bar
Run Code Online (Sandbox Code Playgroud)
你会写的
thing.With(x => x.Foo).With(x => x.Bar)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1436 次 |
| 最近记录: |