是否有理由在C#中初始化字符串?

Is there a reason to initialize a string in C#?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
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?

我想知道是否有兴趣初始化字符串?

1
String value1 = String.Empty;

编辑:我的问题更多的是为什么我应该初始化字符串,而不是在"或字符串之间进行选择。空


imo,使用string.empty,因为它提高了代码的可读性。像gendarme和fxcop这样的代码风格的扫描器将标记"与最佳实践相反"的用法。

编辑:删除了关于内存使用的宣传,这是不正确的。


假设问题的意思是"为什么要初始化字符串",而不是"哪个方法最适合初始化字符串"…

是的,最好初始化字符串,以最小化代码中出现空引用异常的可能性。很容易创建一个从未设置字符串的代码路径,当您对该字符串调用方法时,它将出错。


考虑到空字符串和空字符串之间有意义的区别,我认为答案是"它取决于"。如果您的代码不使用空值,并且您希望能够编写引用变量的代码,并假定该值为非空,那么初始化是有意义的。但也有一些情况,空值是有效和有用的,初始化是没有意义的。例如,如果字符串包含从某些测试设备接收到的值,则空值可能表示未接收到任何值,而"表示接收到了某些内容,而它恰好是空字符串"。