Avatar ·

在 C# 中初始化字符串:string.Empty、String.Empty 或 "" — 哪个更好?

大家好!我刚开始学习 C#,遇到了一个让我很困惑的问题。当需要声明一个空字符串时,我在不同的代码示例中看到三种方式:

string a = "";
string b = string.Empty;
string c = String.Empty;

它们都能正常工作并创建一个空字符串。但从风格、性能和可读性来看,哪一种被认为是正确的?我听说 "" 可能每次都会创建一个新对象,而 string.Empty 是一个常量。这是真的吗?还是说这完全是误解?

另外,我还想知道 string.Empty 和 String.Empty 之间是否有区别?毕竟 string 是 System.String 的别名。那么它们应该是等价的吧?如果是这样,为什么 C# 社区更常用 string.Empty?

最后一个问题:在循环中或频繁赋值时,选择会影响性能吗?例如,如果我在一个循环中