我在處理資源時遇到了一些問題。爲什麼我嘗試在try塊的finally語句中釋放資源時出現此錯誤?
我HEVE驗證碼:
class ChartHelper
{
//public static System.Drawing.Image GetPdfChart(int percentage)
public static System.Drawing.Bitmap GetPdfChart(int percentage)
{
if (percentage == 0)
{
return null;
}
int WIDTH = 130;
int HEIGHT = 10;
//using (Bitmap bitmap = new Bitmap(WIDTH, HEIGHT))
//{
Bitmap bitmap;
try {
bitmap = new Bitmap(WIDTH, HEIGHT);
using (Graphics graphics = Graphics.FromImage(bitmap))
{
using (LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, WIDTH, HEIGHT), Color.LightGreen, Color.Red, LinearGradientMode.Horizontal))
{
graphics.FillRectangle(brush, new Rectangle(0, 0, WIDTH, HEIGHT));
using (Bitmap target = new Bitmap(WIDTH * percentage/100, HEIGHT))
{
Rectangle cropped = new Rectangle(0, 0, WIDTH, HEIGHT);
using (Graphics g = Graphics.FromImage(target))
{
g.DrawImage(bitmap, new Rectangle(0, 0, cropped.Width, cropped.Height), cropped, GraphicsUnit.Pixel);
//g.Save();
//String filename = Path.GetTempFileName() + ".png";
//target.Save(filename);
//return filename;
return bitmap;
}
}
}
}
}
finally
{
bitmap.Dispose();
}
}
}
正如你可以在一開始看到我創建了一個的BitMap對象,以這樣的方式
bitmap = new Bitmap(WIDTH, HEIGHT);
成嘗試塊。
在塊結束時,我有finaly在至極我嘗試配置資源:
finally
{
bitmap.Dispose();
}
但這裏給我下面的錯誤信息:
錯誤2使用未分配的局部變量'位圖'
爲什麼?我能做些什麼來解決它? (我不希望使用使用 statment)
TNX
*爲什麼*你不是t使用'using'語句嗎?這就是它的設計目的。 –
你不應該放棄'位圖'!你將它返回給調用者,這是調用者的責任來處理它。 –