2010-08-20 45 views

回答

7

编译完成后两者完全相同。我发现string.Empty更具可读性。对于我们所知的""真的应该有一些东西,它只是一个错字。

+1

此外,当您确实需要空字符串“”时,很难发现类似“'”的错字。 – Guffa 2010-08-20 20:58:54

1

一旦编译器完成该代码,两个片段的IL /机器代码将是相同的。如果空字符串是算法的重要组成部分,我倾向于使用string.Empty。我倾向于使用""作为任何值,但现在它恰好是空字符串。换句话说,使用传达表达意图的那个。

3

根据this MSDN blog poststring.Empty更有效,因为它不会产生新的对象。

Here是一些更多的信息,包括一个简短的性能比较。

+0

是的,但它是.NET 2.0之前的版本:http://stackoverflow.com/questions/151472/what-is-the-difference-between-string-empty-and ;-) – 2010-08-20 20:50:48

+0

博客帖子不正确。字符串文字仅在装入程序集时创建一次(就像String.Empty属性的字符串对象一样),执行使用字符串字符串的代码不会创建对象。 – Guffa 2010-08-20 20:53:40