usr*_*ΛΩΝ 4 c# null-coalescing-operator
我有一个非常简单的C#问题:处理空字符串时,以下语句是否相等?
s ?? "default";
Run Code Online (Sandbox Code Playgroud)
要么
(!string.IsNullOrEmpty(s)) ? s : "default";
Run Code Online (Sandbox Code Playgroud)
我认为:因为string.Empty!=null,当我真正想要的是第二个时,合并运算符可以将第一个语句的结果设置为空值.因为字符串是特殊的(==和!=重载到值比较)我只是想请C#专家确认.
谢谢.
Jon*_*eet 15
是的,你是对的 - 它们和你指定的方式不一样.
如果您对第一个表单不满意,可以编写以下扩展名:
public static string DefaultIfNullOrEmpty(this string x, string defaultValue)
{
return string.IsNullOrEmpty(x) ? defaultValue : x;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以写:
s.DefaultIfNullOrEmpty("default")
Run Code Online (Sandbox Code Playgroud)
在你的主要代码中.
| 归档时间: |
|
| 查看次数: |
2149 次 |
| 最近记录: |