gpt4 book ai didi

c# - 对象行为

转载 作者:行者123 更新时间:2023-11-30 19:03:32 24 4
gpt4 key购买 nike

谁能解释下面代码的行为。以下代码的输出是字符串“str”,i 的值为 100。

但为什么会这样呢?设置object c1 = null后,为什么不为null?

public class Class1
{
public int i;
public Class1()
{
i = 10;
}

public string method1()
{
return "str";
}
}

public class Class2
{
public void method2(Class1 c1)
{
c1.i = 100;
c1 = null;
}
}

void main()
{
Class1 c1 = new Class1();
Class2 c2 = new Class2();
c2.method2(c1);
Response.Write(c1.method1());
Response.Write(c1.i.ToString());
}

最佳答案

当您调用 method2(Class1 c1) 时,您传递的是对象引用的副本,而不是对象本身(或对象的引用)。当您设置 c1 = null 时,您将引用的副本设置为 null,而不是对象。

您可以通过将方法签名更改为此来获得您期望的行为:

方法 2(引用 Class1 c1)

关于c# - 对象行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com