【发布时间】:2018-02-11 17:03:36
【问题描述】:
请看下面的代码——
public class Program
{
public static void Main()
{
A ob = new A();
ob.x = 120;
ob.Name = "No";
GO(ob);
Console.WriteLine(ob.x);
}
public static void GO(A obj)
{
obj.x = 50;
obj.Name = "Local";
obj = null;
}
}
在控制台中它打印 x 50 的值。但是当我使用 ref 关键字时,它给出了空引用异常。我的问题是如果对象是引用类型,即使我不使用引用,它也应该给出空引用异常。如果不是,那么控制台中 x 的值应该是 120。我无法理解这种行为。请解释当我们使用 ref 和不使用时这里发生了什么。
【问题讨论】:
标签: c#