【问题标题】:Initializing a string with new string("...".ToCharArray())用 new string("...".ToCharArray()) 初始化一个字符串
【发布时间】:2021-01-20 11:47:00
【问题描述】:

我有代码,其中一些字符串按以下方式初始化:

public static string _syncGetLanguagePackage = new string("_syncGetLanguagePackage".ToCharArray());

我想知道这有什么意义。为什么不简单:

public static string _syncGetLanguagePackage = "_syncGetLanguagePackage";

有人有想法吗?

【问题讨论】:

  • 很奇怪。为什么不直接使用nameof

标签: c# arrays string


【解决方案1】:

他们想要复制字符串,以获得不同的引用。

有更好的方法:

public static string _syncGetLanguagePackage = string.Copy("_syncGetLanguagePackage");

string.Copy 其实是:

创建一个新的 String 实例,其值与指定的 String 相同。

【讨论】:

    【解决方案2】:

    第一个 sn-p 将强制创建一个新字符串,而第二个将初始化另一个变量以指向相同的字符串字面量。

    由于 C# 中的字符串是不可变的,因此对于大多数用例而言,创建新实例并没有多大意义。但是,在某些特殊的用例中,您可能需要一个不同的实例 - 例如,如果您想将其用作同步机制。

    【讨论】:

      猜你喜欢
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 2023-01-29
      • 2020-11-06
      • 2020-07-11
      • 1970-01-01
      相关资源
      最近更新 更多