有類A,以及A類型的變量a和b。初始化a之后,將a賦給b。之后將a賦為null。之后b還是可以使用。
思維誤區:本來以為a=null之后,b也應該等於null。
實際測試效果如下
class Program { static void Main(string[] args) { try { A a = new A() { data = "Hello World" }; A b = a; if (b.Equals(a)) { Console.WriteLine("a和b是同一個對象"); } else { Console.WriteLine("a和b不是同一個對象"); } a.data = "Good Morning"; a = null; //b = null; GC.Collect(); Console.WriteLine(b.data); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); } } class A { internal string data; }
最后在stackoverflow上找到了答案,原來對一個引用賦null,僅僅是把指向去掉了。其他變量還是可以指向之前的內容