elu*_*id8 2 javascript c# language-features null-check
C#是否与JavaScript的||具有类似的操作 设定装置?
例如,在JavaScript中,如果我想检查值是否为null并设置默认值,我可以这样做:
function foo(val){
this.name = val || "foo";
}
Run Code Online (Sandbox Code Playgroud)
但是,当我想在C#中使用此功能时,我必须走这条路:
public Foo(string val)
{
this.name = (string.IsNullOrEmpty(val) ? "foo" : val);
}
Run Code Online (Sandbox Code Playgroud)
我知道这很小,乞丐不能选择,但是,如果可能的话,我想避免得到任何涉及疯狂黑客或扩展方法的答案.我使用三元运算符很好,但我很好奇是否有一个我错过的语言功能.
更新:
各地都有很好的答案,但是J0HN和安东在头上打了一针.在上面的示例中,C#不像JavaScript那样执行"虚假"值,因此??运算符不会考虑空字符串.
感谢您的时间和精彩的回复!
C#中有一个null-coalescing运算符,但它无法处理JavaScript的所有怪癖:
this.name = val ?? "foo";
Run Code Online (Sandbox Code Playgroud)
由于空字符串是false在JavaScript中,因此这个C#代码的行为与JS对应的代码不同.
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |