static void Main()
{
String str="sample";
ChangeString(ref str);
}
void ChangeString(ref string str)
{
str="New Sample";
}
在内存方面,当我们将 ref 指针传递给对象时,它将创建新实例或更新现有实例
最佳答案
将引用类型作为参数传递不会创建新实例,无论是否使用 ref
关键字。 ChangeString
方法中的代码将为变量分配一个新实例。
.NET 中的字符串是不可变的,因此您无法更改它们。将字符串分配给字符串变量时,变量中的引用将替换为对新字符串的引用。
请注意,文字字符串 "sample"
和 "New Sample"
的字符串对象都是在应用程序启动时创建的。分配发生时,代码不会创建任何新的字符串实例,它只会获取对先前创建的字符串对象的引用。
关于c# - 当我们将字符串变量作为 ref 参数传递给函数并在函数中更改字符串变量的值时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27798624/