C#:使用OR(短路版本)进行分配

wik*_*iki 0 c# lua

Lua中有一个很好的功能,可以快速检查语句的结果是否nil与使用短路版本对情况作出反应; 像这样的东西:

text = GetTextFromUser() or "default text"
Run Code Online (Sandbox Code Playgroud)

意为指定的返回值GetTextFromUser()text,如果GetTextFromUser()返回nil,然后分配"default text"text

这基本上是使用or操作员短路评估进行分配的好方法.

我想知道c#||运营商是否也有这样的能力.如果不是,实现相同行为的最短途径是什么?三元运算符?如果声明?

use*_*620 6

也许是零合并运算符?https://msdn.microsoft.com/en-ie/library/ms173224.aspx

string a;
string b = a ?? "default value";
Run Code Online (Sandbox Code Playgroud)

所以你的例子将成为:

string text = GetTextFromUser() ?? "default text"
Run Code Online (Sandbox Code Playgroud)