以下代码的输出让我感到惊讶。我认为“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 不同,尽管它们引用相同的地址。