该方法返回位图变量nb,是否需要在方法中的某个位置处置此变量?如果处置,应在何处处置?
public Bitmap cropAtRect(Bitmap b, Rectangle r)
{
Bitmap nb = new Bitmap(r.Width, r.Height);
using (Graphics g = Graphics.FromImage(nb))
{
g.DrawImage(b, -r.X, -r.Y);
return nb;
}
}
2条答案
按热度按时间xytpbqjk1#
disposing的目的是释放一个对象所占用的资源。Disposing是在处理完一个对象后所做的事情。如果你的方法返回
Bitmap
,那么它显然希望在方法完成后使用Bitmap
。所以在方法中处理它没有任何意义。可能有意义的是,调用方法的代码将使用它返回的Bitmap
,然后释放它,例如。cclgggtu2#
在最后一次对位图的引用超出作用域之后,c#应该会为您解决这个问题。如果您对此感到担心,可以在调试时观察内存使用情况,或者编写一个测试用例,用您的函数创建许多位图。