可能重复:
What is the difference between String.Empty and “”
In C#, should I use string.Empty or String.Empty or “”?
Default string initialization: NULL or Empty?
我想知道是否有兴趣初始化字符串?
String value1 = String.Empty;
编辑:我的问题是更多我为什么要初始化字符串而不是选择“”或string.Empty
答案 0 :(得分:4)
IMO,使用string.Empty,因为它增加了代码的可读性。像Gendarme和FxCop这样的代码风格扫描仪将标记""的使用情况。与最佳做法相反。
编辑: 删除了关于内存使用的模糊,这是不正确的。
答案 1 :(得分:2)
假设问题意味着“为什么要初始化字符串”而不是“哪种方法最适合初始化字符串”......
是的,初始化字符串是一个好主意,以最大限度地减少代码中空引用异常的可能性。很容易创建一个永远不会设置字符串的代码路径,当你在该字符串上调用方法时,它会出错。
答案 2 :(得分:1)
考虑到空字符串和空字符串之间存在有意义的差异,我认为答案是“它取决于”。如果您的代码没有使用null值,并且您希望能够编写引用该变量的代码,并假设该值为非null,那么初始化是有意义的。但是可能存在null有效且有用的情况,并且初始化没有意义。例如,如果字符串包含从某些测试设备接收的值,则null可能表示没有收到任何值,而“”表示收到了某些内容,并且它恰好是一个空字符串。