我需要在using
聲明中使用BitmapImage
,這怎麼辦?如何使BitmapImage一次性使用
using (BitmapImage bitmap = new BitmapImage())
{
...
我猜這樣做是通過擴展IDisposable
的方式,但我從來沒有做過那樣的事。
在此先感謝
我需要在using
聲明中使用BitmapImage
,這怎麼辦?如何使BitmapImage一次性使用
using (BitmapImage bitmap = new BitmapImage())
{
...
我猜這樣做是通過擴展IDisposable
的方式,但我從來沒有做過那樣的事。
在此先感謝
你不能這樣做。 BitmapImage
是密封的,所以你不能從它得出。此外,我不知道爲什麼你會在.NET Framework類中實現IDisposable
。你能做的最多的是一個包裝類,它將包含你的BitmapImage
,並實現IDisposable
。
例子:
class DisposableBitmapImageWrapper : IDisposable
{
public BitmapImage Bitmap { get; private set; }
public DisposableBitmapImageWrapper(BitmapImage bitmap)
{
Bitmap = bitmap;
}
public void Dispose()
{
//Do something with the BitmapImage
}
}
原因實施IDisposable
是釋放非託管資源的對象時,你不再需要引用對象。由於不存在與BitmapImage
相關的任何非託管資源,因此您無需包裝BitmapImage
並實施IDisposable
。
如果它還不是IDisposable,那麼爲什麼你認爲它需要處置?你爲什麼要在使用聲明中使用它? – itsme86
好吧,是的你說得對,我只是調整了一些代碼,從未使用過'使用'語句 - 我現在已經傾銷了。 – James