c#中是否有属性属性的合并运算符?

Mr *_*ell 6 c#

因此,有一个合并运算符??,允许方便地处理空对象(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"; 如果属性不存在则失败.

处理这种情况有一种很好的方式吗?

Wim*_*nen 6

处理这种情况有一种很好的方式吗?

您不是第一个要求此功能的人.一种方法是编写"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 次

最近记录:

10 年,6 月 前