一、意思不同
实际上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,在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。
如果判断一个字符串是否是空串,使用if(s==String.Empty)和if(s==””)的效率是一样的,但是最高效的写法是if(s.Length==0)
string.IsNullOrEmpty的内部实现方式:
而string str=null则是表示str未指向任何对象。
