das*_*ght 6

既然string是一门语言的别名String,是绝对的第一,第二表达之间没有区别.

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

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


Lou*_*ann 5

最终,没有什么区别。

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

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

public static readonly string Empty = "";
Run Code Online (Sandbox Code Playgroud)

因此,这只是明确表示您想要使用空字符串的一种便捷方式,而不是""可能会出现拼写错误。

  • 就我个人而言,我更喜欢在代码中使用像 `Empty` 这样的常量,而不是一堆 `string s ="";` (2认同)