有關C#中的引用類型的內存問題
阿新 • • 發佈:2018-06-29
宋體 銷毀 回收機制 定義 sta 如果 point 類型 val
對於一個類,如果定義後(記作對象a),將另外一個對象b直接賦值(“a = b”)給它,則相當於將地址賦值給了這個對象。當另外一個對象b不再對這塊地址應用時,a由於對這塊地址仍在使用,這塊地址的指向的棧空間仍然不被銷毀。直道沒有對象再對其引用,系統將按照回收機制對其進行回收。
Demo如下:
public class ObjectRef { public static void Demo_Main() { PointD a, b, c; b = new PointD(100, 58); a = b; b = new PointD(200, 11); Console.WriteLine("a is now {0}, {1}", a.X, a.Y); // a is now 100, 58 c = new PointD(300, 22); a = c; c.X = 500; Console.WriteLine("a is now {0}, {1}", a.X, a.Y); // a is now 500, 22} } public class PointD { int x; int y; public int X { get { return x; } set { x = value; } } public int Y { get { return y; } set { y = value; } }public PointD(int x, int y) { this.x = x; this.y = y; } }
有關C#中的引用類型的內存問題