Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有理由在C中初始化字符串?_C#_String_Initialization - Fatal编程技术网

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

C# 是否有理由在C中初始化字符串?,c#,string,initialization,C#,String,Initialization,可能重复: 我想知道是否有兴趣初始化字符串 String value1 = String.Empty; 编辑:我的问题更多的是为什么我应该初始化字符串,而不是在或字符串之间选择。EmptyIMO,使用string.Empty,因为它增加了代码的可读性。像宪兵和FxCop这样的代码风格扫描器将根据最佳实践标记as的使用 编辑: 删除了关于内存使用的模糊,这是不正确的。假设问题的意思是为什么要初始化字符串,而不是哪种方法最适合初始化字符串 是的,初始化字符串是一个好主意,可以最大限度地减少代码中

可能重复:

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

String value1 = String.Empty;

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

IMO,使用string.Empty,因为它增加了代码的可读性。像宪兵和FxCop这样的代码风格扫描器将根据最佳实践标记as的使用

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

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


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

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

I搞错了;它们的编译方式不同。@SLaks,这并没有阻止3个人在你的答案被删除之前投票给你;问题是哪种方法更好,或者是否应该初始化字符串?我想这取决于OP在这里的确切要求。看我以前的comment@JohnFx哦,我现在明白了。OP问为什么需要它。但它不是被规范化了吗,或者它与Java不同吗?@KublaiKhan:不是;试试看。@jmacines:我在任何地方都找不到FxCop规则。虽然听起来不错familiar@SLaks-很有趣,那么实习是否被认为不同于规范化?我唯一的观点是,内存使用量的差异即使有,也可以忽略不计。似乎人们还是得出了这个结论。回答实际问题+1。@noah19-修改后的问题。