C# 中字符串 string.Empty
、"" 和 null
三者的区别
1. string.Empty
string.Empty
是一个表示空字符串的静态字段。
- 它实际上等同于 ""(空字符串),但使用
string.Empty
可以更加清晰地表示我们需要一个空字符串。
2. ""(空字符串)
- 双引号中没有任何字符的字符串被称为空字符串。
- 它是一个有效的字符串对象,但不包含任何字符。
3. null
null
表示一个引用类型的空引用。
- 对于字符串对象,
null
表示变量没有引用任何字符串对象。
- 它不是一个有效的字符串对象,也没有任何长度或内容。
代码示例:
| |
| string str1 = string.Empty; |
| Console.WriteLine(str1.Length); |
| |
| |
| string str2 = ""; |
| Console.WriteLine(str2.Length); |
| |
| |
| string str3 = null; |
| Console.WriteLine(str3?.Length); |
| |
| |
| |
| Console.WriteLine(string.Empty == ""); |
| |
| |
| |
| Console.WriteLine(string.Empty == null); |
| |
| |
| |
| Console.WriteLine("" == null); |
| |
| |
| |
| try |
| { |
| Console.WriteLine(str3.ToUpper()); |
| } |
| catch (NullReferenceException ex) |
| { |
| Console.WriteLine(ex.Message); |
| } |
总结:
建议:
- 在需要明确表示空字符串时,使用
string.Empty
或 ""。
- 在需要检查字符串是否为空时,使用
string.IsNullOrEmpty()
方法。
| string name = ""; |
| Console.WriteLine(name==""); |
| Console.WriteLine(name==string.Empty); |
| Console.WriteLine(name==String.Empty); |
| Console.WriteLine(string.IsNullOrEmpty(name)); |
| Console.WriteLine(String.IsNullOrEmpty(name)); |
- 避免使用
null
来表示空字符串,因为它可能导致空引用异常。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!