public void main()
{
string test = "testing";
ChangeVal(test);
Console.WriteLine(test);
}
private void ChangeVal(string test)
{
test = "in child";
}
如果 String 是一个类。我将字符串作为参数传递给函数。在函数中更改该字符串的值。但在 main 函数中,它显示了以前的值。它将打印测试值。
当我创建具有 2 个成员变量整数和字符串的 Foo 类时。当我将类的对象作为参数传递并更改函数中成员变量的值时。它将在主函数中给出更新的值
public class Foo
{
public string test = "testing";
public int i = 5;
}
public void main()
{
Foo obj=new Foo();
Console.WriteLine(obj.test);
ChangeVal(obj);
Console.WriteLine(obj.test);
}
private void ChangeVal(Foo obj)
{
obj.test = "in child";
obj.i = 5;
}
如果字符串是类。它将更新变量的值。May string 是 Unicode 字符的序列,这就是它在第一种情况下不更新值的原因。任何机构都可以详细解释这一点。