返回语句中的空合并运算符-C#

时间:2018-10-23 15:34:27

标签: c# null-coalescing-operator

我在类似下面的return语句中使用了null coalescing operator

return Variable??"undefined";

但是下面的代码

return Variable??Variable="undefined";

我不明白它是如何工作的,因为运算符的第二个参数是赋值语句,我想知道return是如何工作的。

有人可以帮助我理解

2 个答案:

答案 0 :(得分:4)

来自docs

  

赋值运算符(=)存储其右侧操作数的值   在其左手表示的存储位置,属性或索引器中   操作数,并返回值作为结果

所以赋值的返回值就是被赋值。 Variable = "undefined"为此返回"undefined"。然后可以通过您的方法将其返回。另一方面,??只是简单的if语句的简写。

因此,以下内容与您的代码非常相似:

if(Variable != null)
    return Variable
Variable = "undefined";
return Variable;

答案 1 :(得分:3)

在C#中,assign操作还返回已分配的值。 例如

src

是有效代码。首先从右到左评估Assignment get。在您的情况下,分配>空合并运算符。 您可以将代码重写为

src