C#是否對JavaScript的||有類似的操作?設定裝置?C#是否有類似於JavaScript的操作||二傳手?
例如,在JavaScript中,如果我要檢查,如果值是零,並設置一個默認的,我可以做這樣的事情:
function foo(val){
this.name = val || "foo";
}
但是,當我想在C#中這個功能我有走這條路線:
public Foo(string val)
{
this.name = (string.IsNullOrEmpty(val) ? "foo" : val);
}
我知道這是小和乞丐不能挑肥揀瘦,但是,如果可能的話,我想,以避免越來越涉及瘋狂的黑客或擴展方法的任何答案。我對使用三元運算符很好,但我只是好奇是否有我錯過的語言功能。
更新:
偉大的答案周圍的一切,但J0HN和安東打它的頭。在上面的例子中,C#不會像JavaScript那樣產生「falsy」值,所以??
運算符沒有考慮空字符串。
感謝您的時間和很好的迴應!
我必須得到你的回答@ J0HN,因爲你提到它不會評估像JavaScript這樣的「falsy」值。 – elucid8
@ elucid8,無論如何,你應該考慮如何處理一個空字符串。我最近剛剛遇到了使用'str!= null'導致的錯誤,其中'!String.IsNullOrEmpty(str)'應該是。 – J0HN