为什么string.Empty比""更推荐?

Arr*_*abi 3 c# compiler-construction string parsing

为什么string.Empty推荐比""

是因为当编译器解析代码时,编译"器会准备好读取字符串吗?但在string.Empty编译器中甚至不准备读取字符串?

Mat*_*zer 6

还有另一个原因.

由于它们的性质,常量是静态的,它是对某些应用程序域中所有线程共享的单个实例的引用,而文字最终会生成N空字符串的实例.

这就是为什么建议使用string.Empty 常量只读字段而不是使用空""字符串文字,显然,正如其他人所说,它增加了可读性.

无论如何,应该考虑字符串实习,因为在某些情况下,可能会发生包含相同字符串的两个或更多文字可能最终出现在单个实例中(请参阅String.IsInterneddocs 上的备注部分):

公共语言运行库自动维护一个名为intern pool的表,该表包含程序中声明的每个唯一文字字符串常量的单个实例,以及通过调用Intern方法以编程方式添加的任何唯一String实例.

  • 我只是说你的语句"一个文字最终会产生一个空字符串的N个实例"是不正确的.无论你在应用程序中有多少文字`"",它们都将引用相同的`string.Empty`. (2认同)