c# - 在赋值的左侧使用空条件运算符

标签 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;

是否有可能在 MyPage 上使用 null 条件运算符?我在想这样的事情:

MyPage?.Data = this.data;

但是当我这样写的时候,出现如下错误:

The left-hand side of an assignment must be a variable, property or indexer.

我知道这是因为 MyPage 可能为空,左侧不再是变量。

并不是说我不能像我已经拥有的那样使用它,而是我只是想知道是否有可能对此使用 null 条件运算符。

最佳答案

空传播运算符返回一个值。由于您必须在赋值的左侧有一个变量,而不是一个值,因此您不能以这种方式使用它。

当然,您可以使用三元运算符来缩短内容,但另一方面,这并不能真正提高可读性。

Joachim Isaksson 对您的问题的评论显示了一种应该有效的不同方法。

关于c# - 在赋值的左侧使用空条件运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45731552/

相关文章:

c# - 在 C# 的 SQL 语句中使用局部变量值

c# - 编程结构的发音(尤其是C#)

c# - ThreadPool.QueueUserWorkItem 导致应用程序挂起直到完成

c# - 接受数字 0 到 9999 的正则表达式

c# - 空条件运算符

c# - UnassignedReferenceException 即使使用 null 条件运算符

方法参数的 C# null 条件简写

c# - StackPanel 内的 StackPanel 对齐不正确

vb.net - 否定 null 条件运算符会毫无结果地返回意外结果

C# 安全导航运算符 - 实际发生了什么?