是否有必要这样做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# - C#:垃圾收集器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17300107/

10-16 09:52