应使用 String.IsNullOrEmpty() 判断字符串是否为 null 或空字符串,因其内部已处理 null 安全;而 == "" 或 .Length == 0 在 null 时会抛 NullReferenceException;注意它不识别纯空白字符串,需用 IsNullOrWhiteSpace()。

直接用 String.IsNullOrEmpty() 就行,它专门用来判断字符串是否为 null 或空字符串("")。 这是最常用、最安全的方式,不用自己写一堆条件判断。
为什么不能只用 == "" 或 .Length == 0?
因为如果字符串是 null,调用 .Length 或 .Equals("") 会直接抛出 NullReferenceException。而 IsNullOrEmpty 内部已做 null 检查,不会崩。
基本用法:一行搞定
语法很简单:
string str = null;if (string.IsNullOrEmpty(str)) { /* 是空或null */ }
常见写法包括:
if (string.IsNullOrEmpty(input)) throw new ArgumentException("输入不能为空");var result = string.IsNullOrEmpty(name) ? "未知" : name;-
if (!string.IsNullOrEmpty(text)) Process(text);(先取反,处理非空情况)
注意:它不判断“空白字符串”(比如只有空格)
IsNullOrEmpty(" ") 返回 true 吗?不,返回 false。因为 " " 是非空字符串(长度 > 0),只是内容全是空白。
如果想连空白也过滤掉,用 string.IsNullOrWhiteSpace():
-
string.IsNullOrWhiteSpace(null)→true -
string.IsNullOrWhiteSpace("")→true -
string.IsNullOrWhiteSpace(" \t\n ")→true
扩展小提示:C# 6.0+ 可用空合并运算符简化赋值
比如给空值设默认值:
string displayName = userName ?? "游客";// 等价于:string displayName = string.IsNullOrEmpty(userName) ? "游客" : userName;
基本上就这些。用对方法,代码更稳也更干净。









