Getting Unexpected value of an object
本问题已经有最佳答案,请猛点这里访问。
请看下面的代码-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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时和不使用REF时这里发生了什么。
当您将参数传递给带有
在相反的情况下,当调用不带