有必要这样做吗 poly = null; ?完成功能后,垃圾收集器会清理还是?
这里有一个简单的例子:
public void redrawSingelPoly(Canvas canvas)
{
Polyline poly = new Polyline();
poly.Stroke = colorBrush;
poly.StrokeThickness = basicLineThick;
poly.Points = points;
canvas.Children.Add(poly);
poly = null; //Garbage Collector
}
最佳答案
在您的示例中,您的多边形对象不会被垃圾回收。这就是为什么......
您正在执行以下操作...
canvas.Children.Add(poly);
它保留对对象的引用。即使您将本地引用设置为该对象 = null,仍然有对它的引用从方法中传递出去!
垃圾收集器只收集无法访问的对象。
也就是说 - 是否有必要设置 poly = null?不,没有必要。
关于C#:垃圾收集器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17300107/