更简单的写null或empty的方式
本文关键字:empty 方式 null 更简单 | 更新日期: 2023-09-27 18:10:25
我肯定我错过了什么。对于某个项目,我需要检查字符串是否为空或null。
有没有更简单的写法?
if(myString == "" || myString == null)
{
...
是的,已经有了String.IsNullOrEmpty
辅助方法:
if (String.IsNullOrEmpty(myString)) {
...
}
if (string.IsNullOrEmpty(myString)) {
...
}
或者你可以利用扩展方法中的一个特点,它们允许this为空:
static class Extensions {
public static bool IsEmpty(this string s) {
return string.IsNullOrEmpty(s);
}
}
让你写:
if (myString.IsEmpty()) {
...
}
尽管你可能应该选择一个比'empty'更合适的名字
如果你使用的是。net 4,你可以使用
if(string.IsNullOrWhiteSpace(myString)){
}
:
if(string.IsNullOrEmpty(myString)){
}
要避免null检查,您可以使用??运营商。
var result = value ?? "";
我经常使用它作为警卫,以避免发送我不希望在方法中发送的数据。
JoinStrings(value1 ?? "", value2 ?? "")
也可以用来避免不必要的格式化。
string ToString()
{
return "[" + (value1 ?? 0.0) + ", " + (value2 ?? 0.0) + "]";
}
这也可以用在if语句中,它不是很好,但有时很方便。
if (value ?? "" != "") // Not the best example.
{
}
在c# 9中,通过使用模式匹配,您可以执行以下操作
myString is not {Length: > 0}; // Equivalent to string.IsNullOrEmpty(myString)
c# 9的模式匹配允许你写:
myString is null or ""
//如果字符串没有定义为null,那么IsNullOrEmpty它工作得很好,但是如果字符串定义为null,那么trim将抛出异常。
if(string.IsNullOrEmpty(myString.Trim()){
...
}
//你可以使用IsNullOrWhiteSpace,它可以很好地处理字符串i中的多个空白。如果有多个空白也返回true
if(string.IsNullOrWhiteSpace (myString.Trim()){
...
}