是否可以将新的运算符添加到类似于的String类中
string val = anotherVal ??? "Default Val";
Run Code Online (Sandbox Code Playgroud)
和工作一样
string val = !String.IsNullOrEmpty(anotherVal) ? anotherVal : "Default Val";
Run Code Online (Sandbox Code Playgroud)
您不能为字符串类定义自己的运算符,并从C#中使用它们.(F#允许您为任意类创建运算符,有点像扩展方法,但对于其他成员类型.)
你可以做的是写一个扩展方法:
public static string DefaultIfEmpty(this string original, string defaultValue)
{
return string.IsNullOrEmpty(original) ? defaultValue : original;
}
Run Code Online (Sandbox Code Playgroud)
并称之为:
string val = anotherValue.DefaultIfEmpty("Default Val");
Run Code Online (Sandbox Code Playgroud)
如果你不想评估"默认"字符串,除非需要它,你可能会有一个过载函数:
public static string DefaultIfEmpty(this string original,
Func<string> defaultValueProvider)
{
return string.IsNullOrEmpty(original) ? defaultValueProvider() : original;
}
Run Code Online (Sandbox Code Playgroud)
并称之为:
string val = anotherValue.DefaultIfEmpty(() => "Default Val");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
347 次 |
| 最近记录: |