这段代码是否创建一个临时字符串?
此代码是否需要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