使用String.IsNULLOrEmpty可判断字符串是否为null或空,而string.IsNullOrWhiteSpace还排除空白字符,推荐根据需求选择以避免异常。

在 C# 中判断一个字符串是否为空或 null 是开发中常见的需求。处理不当可能导致程序出现异常,比如 NullReferenceException。因此,正确使用空值判断方法非常重要。
使用 string.IsNullOrEmpty 方法
这是最常用也最安全的方式,用于判断字符串是否为 null 或空字符串(即 "")。
string.IsNullOrEmpty 返回布尔值:
- 如果字符串为
null或"",返回 true - 否则返回 false
string str1 = null; string str2 = ""; string str3 = "Hello"; <p>Console.WriteLine(string.IsNullOrEmpty(str1)); // 输出: True Console.WriteLine(string.IsNullOrEmpty(str2)); // 输出: True Console.WriteLine(string.IsNullOrEmpty(str3)); // 输出: False</p>
推荐在大多数场景下使用此方法,尤其是在接收可能为空的用户输入或配置参数时。
使用 string.IsNullOrWhiteSpace 方法
除了判断 null 和空字符串外,这个方法还能识别空白字符,比如空格、制表符、换行符等。
string.IsNullOrWhiteSpace 在以下情况返回 true:
- 字符串为
null - 字符串长度为 0(即 "")
- 字符串只包含空白字符,如 ” “, “t”, “n” 等
string str1 = " "; string str2 = "tn"; string str3 = " abc "; <p>Console.WriteLine(string.IsNullOrWhiteSpace(str1)); // True Console.WriteLine(string.IsNullOrWhiteSpace(str2)); // True Console.WriteLine(string.IsNullOrWhiteSpace(str3)); // False</p>
当你希望排除“看似有内容实则无意义”的空白字符串时,应优先使用此方法。
手动判断(不推荐但需了解)
虽然可以手动编写判断逻辑,但容易出错且代码冗余。
if (str == null || str == "") { // 字符串为空 }
这种方式忽略了空白字符串的问题,也不够简洁。相比而言,内置方法更清晰、安全。
基本上就这些。日常开发中优先使用 string.IsNullOrEmpty 或 string.IsNullOrWhiteSpace,根据是否需要忽略空白来选择即可。不复杂但容易忽略细节。


