該方法回傳位圖變數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;
}
}
uj5u.com熱心網友回復:
處置的目的是釋放物件持有的資源。處理是您在完成一個物件時所做的事情。如果您的方法回傳它,Bitmap那么它顯然希望Bitmap在方法完成后使用它,因此在方法中處理它沒有任何意義。可能有意義的是呼叫您的方法的代碼將使用Bitmap它回傳然后處理它,例如
Bitmap bmp;
Rectangle rect;
// ...
using (var newBmp = cropAtRect(bmp, rect))
{
// Use newBmp here.
}
uj5u.com熱心網友回復:
在最后一次對位圖的參考超出范圍后,c# 應該會為您處理這些問題。如果你擔心它,你可以在除錯時觀察你的記憶體使用情況,或者撰寫一個測驗用例,用你的函式創建許多位圖。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/516772.html
標籤:C#。网表格位图处置
上一篇:為什么MouseEventArgse不會在For()回圈中與Mousebuttons.(MouseButton)互動?
