使用新字符串( "..." 初始化字符串。ToCharArray())



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

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

我想知道这有什么意义。为什么不直接:

public static string _syncGetLanguagePackage = "_syncGetLanguagePackage";

有谁有主意吗?

他们想复制字符串,有一个不同的引用。

有一个更好的方法:

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

string.Copy实际上:

创建与指定String具有相同值的String的新实例。

第一个代码段将强制创建一个新字符串,而第二个代码段将初始化另一个变量,使其指向相同的字符串字面值。

由于c#中的字符串是不可变的,因此在大多数情况下创建一个新实例没有多大意义。然而,在一些特殊的用例中,您可能需要一个不同的实例——例如,如果您想将其用作同步机制。

最新更新