rh0*_*005 5 c# operators roslyn c#-6.0
随着Roslyn的推出,C#获得了安全导航运营商的优势.这对于使用点符号的对象来说非常棒
MyClass myClass = null;
var singleElement = myClass?.ArrayOfStrings[0];
Run Code Online (Sandbox Code Playgroud)
在这个例子中,myClass为null,但安全操作符使我免于异常.
我的问题是,如果你有一个索引对象是否有安全导航运算符的等效实现?需要它的一个例子如下所示:
var myClass2 = new MyClass { ArrayOfStrings = null };
var singleElement2 = myClass2?.ArrayOfStrings[0];
Run Code Online (Sandbox Code Playgroud)
在这个例子中,myClass2不是null,而是ArrayOfStrings属性,因此当我尝试访问它时,它将抛出异常.因为ArrayOfStrings和索引之间没有点符号,所以我无法添加安全的nav操作符.
因为这是一个数组,我可以通过以下方式使用安全导航操作符,但这不适用于其他集合,如Lists和DataRows
var myClass3 = new MyClass { ArrayOfStrings = null };
var singleElement3 = myClass3?.ArrayOfStrings?.GetValue(0);
Run Code Online (Sandbox Code Playgroud)
基于语言功能状态页面,它看起来像你想要的:
var singleElement2 = myClass2?.ArrayOfStrings?[0];
Run Code Online (Sandbox Code Playgroud)
页面上的示例是:
customer?.Orders?[5]?.$price
Run Code Online (Sandbox Code Playgroud)
...不可否认,$price
现在这个部分已被撤销了,我相信,但我希望索引的空传播能够正常工作.
归档时间: |
|
查看次数: |
1046 次 |
最近记录: |