c# - 为什么使用带有 char 数组的字符串构造函数作为常量?

标签 c# .net

我找到了这段代码,我想了解为什么开发人员使用带有 char 数组的字符串构造函数,而不仅仅是文字常量字符串:

static string atomLang = new String("lang".ToCharArray());

最佳答案

我能想到的唯一原因是避免引用 interned instance字符串的。

string str1 = "lang";
string str2 = "lang";
string str3 = new String("lang".ToCharArray());

Console.WriteLine(object.ReferenceEquals(str1, str2));   // Output: true
Console.WriteLine(object.ReferenceEquals(str1, str3));   // Output: false

这并不会对您的代码产生任何实际影响(除了边际性能差异之外)。

关于c# - 为什么使用带有 char 数组的字符串构造函数作为常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11171774/

相关文章:

c# - 将文本文件的多个修订存储到单个文件的最佳方法

c# - .NET:考虑夏令时

javascript - 当字符串通过javascript中的encodeURIComponent通信时,将字符串解析为原始形式

java - 值得信赖的开发人员撰写有关 Java 和 .NET 的文章?

c# - 高度并行化的Levenshtein距离算法

c# - 测试异步方法中的异常

C#:检查 XML 中的重复元素

c# - Visual Studio 2019 错误 - 无法加载文件或程序集或其依赖项之一

c# - 查找可用时间段 C#

c# - 无法在 MqttNet 托管客户端中添加客户端证书