假设我的命令体系结构模式中有一个方法可以更改图形路径的内容,如下所示:(GraphicsPath是IDisposable)

(这纯粹是未经测试的快速示例)

public void DoSomething(ref GraphicsPath path)
{
   if(path != null)
      {
      List<PointF> pts = new List<PointF>();
      foreach(PointF pt in path.PathPoints)
      {
         //again, just a silly example.
         float y = pt.X;
         float x = pt.Y;
         pts.Add(new PointF(x, y));
      }
   path.Dispose(); //<-- Do I need this?
   path = new GraphicsPath(pts.ToArray(), path.PathTypes);
  }
}


在将路径设置为新路径之前,是否需要处置路径?如果是这样,为什么?

最佳答案

是。由于要通过引用传递路径变量,因此在重新分配前一个实例时会将其“孤立”。用Dispose()清理是正确的事情。

关于c# - 重新填充IDisposable对象之前,是否必须将它们丢弃?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1785453/

10-10 08:52