Mic*_*ers 81
它并没有什么不同.
http://msdn.microsoft.com/en-us/library/system.string.empty.aspx:
该字段的值是零长度字符串"".
在应用程序代码中,此字段最常用于分配以将字符串变量初始化为空字符串.要测试字符串的值是否为String.Empty,请使用IsNullOrEmpty方法.
And*_*est 81
根据布拉德艾布拉姆斯的说法:
正如大卫所暗示的那样,String.Empty和""之间的差异非常小,但存在差异.""实际上创建了一个对象,它可能会被拉出字符串实习池,但仍然......而String.Empty没有创建对象......所以如果你真的在寻找内存效率,我建议使用String.Empty.但是,你应该记住差异是如此微不足道,你将永远不会在你的代码中看到...
至于System.String.Empty或string.Empty或String.Empty ......我的护理水平很低;-)
更新(2015年6月3日):
在评论中已经提到2003年的上述引用不再正确(我假设这是指""实际创建对象的语句).所以我在C#5(VS 2013)中创建了几个简单的控制台程序:
class Program
{
    static void Main()
    {
        // Outputs "True"
        Debug.WriteLine(string.IsInterned(string.Empty) != null);
    }
}
class Program
{
    static void Main()
    {
        // Outputs "True"
        Debug.WriteLine(string.IsInterned("") != null);
    }
}
这表明,无论""与String.Empty您的代码时开始运行,这意味着对于所有的实际目的,它们是相同的都是实习..
Brad评论中最重要的部分是:
你应该记住差异是如此微不足道,你将永远不会在你的代码中看到它...
这是底线.在""和String.Empty之间进行选择不是基于性能的决策. 不要浪费很多时间思考它. 根据您发现的更具可读性的内容或项目中已使用的任何约定进行选择.
jam*_*one 13
String.Empty is identical to ""然而,在大多数情况下,通常我发现它更容易使用String.IsNullOrEmpty(str)而不必比较str == "" || str == null另外如果你在.NET 4.0上String.IsNullOrWhiteSpace(str)覆盖更多的情况,并且是迄今为止最好的.
Jos*_*ola 10
没有区别.有些人更喜欢String.Empty用于代码可读性目的.使用您习惯使用的那个.
string.Empty始终是同一对象
“”始终是一个新对象,垃圾收集器可能必须将其删除。
因此,您应始终使用string.empty而不是“”。
string a="";
string b=string.Empty;
被翻译成
IL_0000:  ldstr       ""
IL_0005:  ldsfld      System.String.Empty
| 归档时间: | 
 | 
| 查看次数: | 52056 次 | 
| 最近记录: |