2011-12-13 47 views
0

可能重复:
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?是否有理由在C#中初始化字符串?

我想知道是否有初始化字符串中的利益?

String value1 = String.Empty; 

编辑:我的问题是更多的我为什么要初始化字符串除“”或的String.Empty

+0

我错了;这些编译不完全一样。 – SLaks 2011-12-13 16:57:07

+0

@SLaks,这并没有阻止3人在你的答案被删除之前将你提升到最高点;) – 2011-12-13 16:58:57

+1

问题是关于哪种方法更好,或者你是否应该初始化字符串? – JohnFx 2011-12-13 17:00:15

回答

2

假设这个问题的意思是“你为什么要初始化字符串”,而不是“哪种方法是最好的初始化字符串” ......

是的,这是初始化字符串,以尽量减少空引用的可能性是个好主意代码中的例外。很容易创建一个代码路径,其中字符串从不设置,当您调用该字符串的方法时,它将会出错。

4

之间进行选择IMO,使用的String.Empty,因为它增加了代码的可读性。像Gendarme和FxCop这样的代码风格扫描程序会根据最佳实践标记“”的用法。

编辑: 删除了有关内存使用情况的错误消息。

1

考虑到空字符串和空字符串之间存在有意义的区别,我认为答案是“它取决于”。如果你的代码对空值没有用处,并且你希望能够编写引用该变量的代码,并假定这个值是非空的,那么初始化就是有意义的。但是可能有些情况下null是有效的,并且初始化没有意义。例如,如果字符串保存从某个测试设备收到的值,则null可能表示没有收到任何值,而“”表示收到了某些东西,而且恰好是空字符串。