参考:SOF

    在早期的 .NET 版本中,"" 会创建一个对象而 string.Empty 不会,这就导致 string.Empty 的效率更高。

    从 .NET 2.0 开始,程序中的所有 "" 都指向同一个字符串字面量(string literal),所以效率和 string.Empty 基本一样。

    于是现如今的 string.Empty"" 只有下面两个区别:

    1. string.Empty 是个只读(readonly)字段,而 "" 是个常量值(const)
      1. 这就导致 特性参数值、case 表达式 和 默认参数 等情况只能使用 ""
    2. string.Empty 的可读性更强