C#中的“新”符号有什么用?

时间:2019-07-30 06:26:11

标签: c# new-operator

自从我最近才开始学习这种语言以来,在查看有关C#的一些教程时遇到了一个问题。我遇到了一个问题,一旦我反转了一个字符串,就不得不使用新的字符串才能将其实际值存储在另一个变量中。

为什么需要使用'new string()'?在不同的编程语言中,我从来没有遇到过使用'new string()'的需要。在此先感谢:)

// C#

char[] reversedName = name.ToCharArray();
Array.Reverse(reversedName); 
string result = new string(reversedName);

2 个答案:

答案 0 :(得分:0)

String是一个类,与任何面向对象的编程语言中的其他类一样,我们可以像创建任何类型的对象一样使用new关键字来创建它的对象。

在上述特定情况下,您有一个char数组,而String类具有一个构造函数重载,该构造函数将char[]作为输入并创建一个String。因此,您可以使用new String来调用构造函数。

因此,您正在说的是使用它的构造函数中提供的char[]创建一个字符串类型的对象。

答案 1 :(得分:0)

您可以-和您提到的任何其他语言一样-当然也可以使用类似的东西:

string m = "Hello World". 

但是您的reversedName char 的数组,不能直接转换为string。因此以下操作将无效:

string myString = "Hello World".ToCharArray();

因为ToCharArray-顾名思义-返回char[],而不是string,并且两者之间没有转换。

这就是为什么您需要使用constructor that accepts an array of char创建新字符串的原因。