这段代码是否创建一个临时字符串?

此代码是否需要x并直接更改其内容或创建一个临时新字符串然后复制到x?这段代码是否创建一个临时字符串?

如果后者是真的,我不明白我们为什么使用ref。

public static void RemoveSpaces(ref string x) 

{

x = x.Replace(" ", "");

}

回答:

是的,它会创建新的字符串。
你在string上做的任何操作都会创建新的字符串,因为string是不可变的类型。

回答:

如果你不使用ref,当你调用该函数时它不会工作。

string y = "Subash Kharel"; 

RemoveSpaces(y);

Console.Write(y);

当你不使用ref时,结果将是“Subash Kharel”。

回答:

如果你不想使用ref你可以在你的签名从void改变string和使用它像这样

public static string RemoveSpaces(string x) 

{

return x.Replace(" ","");

}

我认为这是个人喜好的问题。

以上是 这段代码是否创建一个临时字符串? 的全部内容, 来源链接: utcz.com/qa/265080.html

回到顶部