代码之家  ›  专栏  ›  技术社区  ›  fishhead

如果在对方法的调用中创建了画笔,则是否释放该画笔?

  •  1
  • fishhead  · 技术社区  · 16 年前

    下面是在我的paint方法中找到的代码片段。当我以这种方式创建一个对象(如画笔)时,我不确定它叫什么,但它将被正确地处理,还是我需要关心它?

    g.DrawString("12", _ContentFont, new SolidBrush(Color.Black), new PointF(25, 25));
    
    2 回复  |  直到 16 年前
        1
  •  6
  •   Dan Byström    16 年前

    不,不会的。试试这个:

    using ( var brush = new SolidBrush(Color.Black) )
      g.DrawString("12", _ContentFont, brush, new PointF(25, 25));
    

    但说到黑色,最好是:

      g.DrawString("12", _ContentFont, Brushes.Black, new PointF(25, 25));
    
        2
  •  1
  •   Joel Coehoorn    16 年前

    不,它变成了 合格的 用于处置。不能保证什么时候会发生这种情况;它可能会在一段时间内一直存在。

    这些天,我会认为这是一个错误,虽然我知道的时候,我也不知道更好。