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

时间:2011-12-13 16:55:01

标签: c# string initialization

  

可能重复:
  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

3 个答案:

答案 0 :(得分:4)

IMO,使用string.Empty,因为它增加了代码的可读性。像Gendarme和FxCop这样的代码风格扫描仪将标记""的使用情况。与最佳做法相反。

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

答案 1 :(得分:2)

假设问题意味着“为什么要初始化字符串”而不是“哪种方法最适合初始化字符串”......

是的,初始化字符串是一个好主意,以最大限度地减少代码中空引用异常的可能性。很容易创建一个永远不会设置字符串的代码路径,当你在该字符串上调用方法时,它会出错。

答案 2 :(得分:1)

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