2016-06-28 23 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