请问String.Empty与""的区别是什么?

一、意思不同

实际上Empty是string类中的一个静态的只读字段,他的定义是这样的:public static readonly String Empty = "";也就是说string.Empty的内部实现是等于””的。

二、好处不同

""创建一个对象string.Empty不创建对象参考文献,这使得string.Empty更有效率。在.NET 2.0及更高版本中,所有出现在""引用相同的字符串文字,这意味着""等于.Empty,但还是不如.Length == 0.Length == 0是最快的选择,但是.Empty使代码稍微干净一些。

请问String.Empty与

三、用法不同

string.Empty不分配存储空间,""分配一个长度为空的存储空间,所以一般用string.Empty

为了以后跨平台,还是用string.empty,在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。

如果判断一个字符串是否是空串,使用if(s==String.Empty)和if(s==””)的效率是一样的,但是最高效的写法是if(s.Length==0)

string.IsNullOrEmpty的内部实现方式:

而string str=null则是表示str未指向任何对象。