为什么建议使用string.Empty而不是“”?

问题描述

| 为什么更推荐ѭ0而不是ѭ1? 是因为当编译器解析代码并出现
\"
时,编译器已准备好读取字符串吗?但是在ѭ0中,编译器甚至不会准备好读取字符串?     

解决方法

还有另一个原因。 常量由于其性质而为静态,是对某些应用程序域中所有线程共享的单个实例的引用,而文字最终会产生空字符串的“ 4”个实例。 这就是为什么建议使用“ 0”常量只读字段而不使用空的“ 1”字符串文字的原因,并且显然,正如其他人所说的那样,它可以提高可读性。 无论如何,都应该考虑字符串插入,因为在某些条件下,包含同一字符串的两个或多个文字可能会在单个实例中结束(请参见
String.IsInterned
文档的备注部分):   公共语言运行时会自动维护一个表,称为   实习生池,其中包含每个唯一实例的单个实例   在程序中声明的文字字符串常量,以及任何唯一的   您通过调用Intern以编程方式添加的String实例   方法。     ,不,这当然不是正确的答案。您没有提到语言,所以让我在这里猜一些东西:
String.Empty
是在class9ѭ类中定义的常数。
\"\"
是空字符串的字符串文字。 现在,如果要进行相等比较,那么您要确保您正在谈论的是同一对象,对吗? 您的语言是否保证
\"\"
string.empty
比较相等?这也可能是运行时的问题。我认为您想在Google上使用的术语是字符串实习。如果有,那么使用哪一个都不重要。如果您不这样做,那么会发生细微的错误。 编辑:我看到你在谈论c#。那确实有字符串实习,所以使用哪一个都不重要。这只是样式问题。     ,如果您使用的是
\"\"
,则很容易将其与
\" \"
混淆,以便提高可读性。可以使用
String.Empty;
    ,从根本上讲,它就像是一个常量值,更便于人类阅读。