为什么 string.Empty 比 "" 更推荐?

问题描述 投票:0回答:4

为什么

string.Empty
""
更值得推荐?

是因为当编译器解析代码时,出现

"
,编译器就准备好读取字符串了吗?但在
string.Empty
中,编译器甚至不会准备好读取字符串?

c# string parsing
4个回答
6
投票

还有一个原因。

常量,由于其本质,是静态是对某些应用程序域中所有线程共享的单个实例的引用,而文字最终会生成空字符串的

N
实例。

这就是为什么建议使用

string.Empty
constant 只读字段而不是使用空
""
字符串文字,显然,正如其他人所说,它增加了可读性。

无论如何,应该考虑字符串驻留,因为在某些情况下,可能会发生两个或多个包含相同字符串的文字可能最终出现在一个实例中(请参阅

String.IsInterned
文档上的备注部分):

公共语言运行时自动维护一个表,称为 实习生池,其中包含每个唯一的单个实例 程序中声明的文字字符串常量,以及任何唯一的 通过调用 Intern 以编程方式添加的 String 实例 方法。


4
投票

不,这肯定不是正确的答案。你没有提到语言,所以让我在这里猜测一些东西:

String.Empty
是在类
string
上定义的常量。
""
是空字符串的字符串文字。

现在,如果您正在进行平等比较,那么您想确保您正在谈论同一个对象,对吗?

您的语言是否保证

""
string.empty
比较相等?这也可能是运行时间的问题。我想你想用谷歌搜索的术语是“字符串实习”。如果你有这个,那么使用哪一个并不重要。如果你不这样做,那么,就会发生微妙的错误。

编辑:

我看到你在谈论c#。 确实有字符串驻留,所以使用哪一个并不重要。这只是风格问题。


4
投票
""

,它很容易与

" "
混淆,因此为了增加可读性,可以使用
String.Empty;
    


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.