以下两者有什么区别:
return string.Empty;
return String.Empty;
return "";
以下两者有什么区别:
return string.Empty;
return String.Empty;
return "";
因为string
是String
的语言别名,所以第一个和第二个表达式之间绝对没有区别。
从.NET 2开始,""
返回的对象与String.Empty
完全相同,使得所有三个语句在它们返回的值方面成为精确的等价物。即使在.NET 2之前的版本中,由于内部引用会导致不会创建多个对象。
第一个和第二个代码段将生成与第三个代码段不同的IL代码,但它们都将返回相同的对象。
String.Empty
不同。虽然不重要,但我认为它在技术上不是“完全相同的对象”或“确切等效”。 - Chris Sinclairint
是Int32
的别名,long
是Int64
的别名,等等。 - Tim Goodman归根结底,它们没有区别。
string
是 System.String
的别名(这意味着它们是完全相同的东西),当你输入 "string" 时,编译器会在编译时将其更改为 "System.String"。
现在,System.String.Empty 被定义为:
public static readonly string Empty = "";
""
,这可能是打字错误。Empty
,而不是一堆 string s = "";
。 - JonH