Asi*_*ami 114 c# string isnullorempty difference string-function
C#中这些命令之间有什么区别?
string text= " ";
1-string.IsNullOrEmpty(text.Trim())
2-string.IsNullOrWhiteSpace(text)
Run Code Online (Sandbox Code Playgroud)
fio*_*bio 162
IsNullOrWhiteSpace是一种类似于以下代码的便捷方法,除了它提供了卓越的性能:Run Code Online (Sandbox Code Playgroud)return String.IsNullOrEmpty(value) || value.Trim().Length == 0;空格字符由Unicode标准定义.该
IsNullOrWhiteSpace方法解释在将其Char.IsWhiteSpace作为空白字符传递给方法时返回值true的任何字符.
TGH*_*TGH 43
第一种方法检查字符串是否为空或字符串.在您的示例中,您可能冒着空引用的风险,因为您在修剪之前没有检查null
1- string.IsNullOrEmpty(text.Trim())
Run Code Online (Sandbox Code Playgroud)
第二种方法检查字符串是否为null或字符串中的任意数量的空格(包括空字符串)
2- string .IsNullOrWhiteSpace(text)
Run Code Online (Sandbox Code Playgroud)
该方法IsNullOrWhiteSpace涵盖IsNullOrEmpty,但true如果字符串包含空格,它也会返回.
在您的具体示例中,您应该使用2)因为您在方法1)中冒着空引用异常的风险,因为您在一个可能为null的字符串上调用trim
fub*_*ubo 40
空格, Tab \t和换行符\n是不同的
string.IsNullOrWhiteSpace("\t"); //true
string.IsNullOrEmpty("\t"); //false
string.IsNullOrWhiteSpace(" "); //true
string.IsNullOrEmpty(" "); //false
string.IsNullOrWhiteSpace("\n"); //true
string.IsNullOrEmpty("\n"); //false
Run Code Online (Sandbox Code Playgroud)
https://dotnetfiddle.net/4hkpKM
也看到这个答案:空白字符
String.IsNullOrEmpty(string value)true如果字符串为null或为空,则返回.作为参考,空字符串由""(两个双引号字符)表示
String.IsNullOrWhitespace(string value)true如果字符串为null,为空,或仅包含空格或制表符等空格字符,则返回.
要查看哪些字符计为空格,请参阅此链接:http: //msdn.microsoft.com/en-us/library/t809ektx.aspx
这是反编译后方法的实现。
public static bool IsNullOrEmpty(String value)
{
return (value == null || value.Length == 0);
}
public static bool IsNullOrWhiteSpace(String value)
{
if (value == null) return true;
for(int i = 0; i < value.Length; i++) {
if(!Char.IsWhiteSpace(value[i])) return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
因此,很明显IsNullOrWhiteSpace方法还会检查要传递的值是否包含空格。
空格参考:https ://msdn.microsoft.com/zh-cn/library/system.char.iswhitespace( v= vs.110).aspx
| 归档时间: |
|
| 查看次数: |
76828 次 |
| 最近记录: |