以下代码的输出让我感到惊讶。我认为“a”应该包含对新创建对象的引用。有人可以解释为什么结果不是 2 吗?
class Program
{
static void Main(string[] args)
{
aclass a = new aclass();
Process(a);
Console.WriteLine(a.number);
Console.ReadLine();
}
static void Process(aclass a)
{
aclass temp = new aclass();
temp.number++;
//Console.WriteLine(temp.number);
a = temp;
a.number++;
//Console.WriteLine(a.number);
}
}
class aclass
{
public int number = 0;
}
编辑:这是一个面试问题。我才意识到我长期以来误解了这个概念。参数 a 与原始 a 不同,尽管它们引用相同的地址。