6

可能重复:
在 C# 中,我应该使用 string.Empty 还是 String.Empty 还是“”?

有什么区别:

return string.Empty;
return String.Empty;
return "";
4

2 回答 2

8

由于string是 的语言别名String因此第一个和第二个表达式之间绝对没有区别。

从 .NET 2 开始,""返回与 完全相同的对象String.Empty,使所有三个语句在它们返回的值方面彼此完全等效。即使在 2 之前的 .NET 中,也不会因为实习而创建多个对象。

第一个和第二个片段将生成与第三个片段不同的 IL 代码,但它们都将返回相同的对象。

于 2012-10-01T14:28:12.747 回答
4

归根结底,没有区别。

string是一个别名System.String(意味着它实际上是同一件事),当您键入“string”时,编译器在编译时将其更改为“System.String”。

现在, System.String.Empty 定义为:

public static readonly string Empty = "";

所以这只是一种方便的方式来明确表示你想使用一个空字符串,而不是""可能是一个错字。

于 2012-10-01T14:28:56.200 回答