2016-06-28 88 views
0

的Lua有可以快速检查一个很好的功能,如果语句的结果是nil与否和使用的短路版本的情况作出反应;一些诸如:C#:使用OR(短路版本)分配

text = GetTextFromUser() or "default text" 

其转化为GetTextFromUser()的返回值赋给text如果GetTextFromUser()返回nil,然后分配"default text"text

这基本上是好的技巧使用or运营商短路评价分配。

我想知道是否c#||运营商也有这样的能力与否。如果不是,那么实现相同行为的最短途径是什么?三元操作符?如果陈述?

+0

[TernaryOperator]:https://msdn.microsoft.com/library/ty67wk28.aspx – HimBromBeere

+0

text = GetTextFromUser()? “默认文本” –

回答

0

如果条件不满足,您可以创建一个简单的方法返回默认值

string GetValueOrDefault(string value, Func<bool, string> condition, 
    string defaultValue = "") => condition(value) ? value: defaultValue; 

使用

var text = GetValueOrDefault(GetTextFromUser(), o => o != nil, "default text"); 

PS : 去做通用版本。

+0

感谢您提供其他可能性。 – wiki