return 语句中的空合并运算符- c#
null coalescing operator in return statements- c#
我在下面的 return 语句中使用了 null coalescing operator
return Variable??"undefined";
但是下面的代码,
return Variable??Variable="undefined";
我不明白它是如何工作的,因为运算符的第二个参数是一个赋值语句,我想知道 return 是如何工作的。
谁能帮我理解一下
来自docs:
The assignment operator (=) stores the value of its right-hand operand
in the storage location, property, or indexer denoted by its left-hand
operand and returns the value as its result
所以赋值的 return 值就是被赋值的值。 Variable = "undefined"
因此 returns "undefined"
。然后可以通过您的方法 returned。另一方面,??
只是一个简单的 if 语句的 shorthand。
因此以下内容与您的代码非常相似:
if(Variable != null)
return Variable
Variable = "undefined";
return Variable;
在 C# 中,赋值操作也 returns 赋值。
例如
Value=Value=Value=Value="Hello World"
是有效代码。 Assignment 首先从右到左计算。在您的情况下,分配>空合并运算符。
您可以将代码重写为
string returnValue="";
if(Variable==null)
returnValue=Variable="undefined";
else
returnValue=Variable;
return returnValue;
我在下面的 return 语句中使用了 null coalescing operator
return Variable??"undefined";
但是下面的代码,
return Variable??Variable="undefined";
我不明白它是如何工作的,因为运算符的第二个参数是一个赋值语句,我想知道 return 是如何工作的。
谁能帮我理解一下
来自docs:
The assignment operator (=) stores the value of its right-hand operand in the storage location, property, or indexer denoted by its left-hand operand and returns the value as its result
所以赋值的 return 值就是被赋值的值。 Variable = "undefined"
因此 returns "undefined"
。然后可以通过您的方法 returned。另一方面,??
只是一个简单的 if 语句的 shorthand。
因此以下内容与您的代码非常相似:
if(Variable != null)
return Variable
Variable = "undefined";
return Variable;
在 C# 中,赋值操作也 returns 赋值。 例如
Value=Value=Value=Value="Hello World"
是有效代码。 Assignment 首先从右到左计算。在您的情况下,分配>空合并运算符。 您可以将代码重写为
string returnValue="";
if(Variable==null)
returnValue=Variable="undefined";
else
returnValue=Variable;
return returnValue;