dii*_*___ 28 c# null-conditional-operator
我有几个页面,每个页面都有一个名为的属性Data.在另一个页面上,我将这样的数据设置为:
if (MyPage1 != null)
MyPage1.Data = this.data;
if (MyPage2 != null)
MyPage2.Data = this.data;
if (MyPage3 != null)
MyPage3.Data = this.data;
Run Code Online (Sandbox Code Playgroud)
是否有可能使用空条件运算符MyPage?我在考虑这样的事情:
MyPage?.Data = this.data;
Run Code Online (Sandbox Code Playgroud)
但是当我这样写时,我收到以下错误:
赋值的左侧必须是变量,属性或索引器.
我知道这是因为MyPage可能是null而左侧不再是变量.
这并不是说像我有它已经,但我只是想知道是否有任何可能使用空条件操作这个我不能使用它.
All*_*hty 10
空传播运算符返回一个值.并且由于您必须在赋值的左侧有一个变量,而不是值,因此您不能以这种方式使用它.
当然,你可以通过使用tenary运算符来缩短时间,但另一方面,这对可读性方面没有帮助.
Joachim Isaksson对您的问题的评论显示了一种应该有效的不同方法.
正如Joachim Isaksson在评论中建议的那样,我现在有一个方法SetData(Data data)并使用它如下:
MyPage1?.SetData(this.data);
MyPage2?.SetData(this.data);
MyPage3?.SetData(this.data);
Run Code Online (Sandbox Code Playgroud)