我有两个班子:
public class ImageHandler
{
private Bitmap _currentBitmap;
private Bitmap _bitmapbeforeProcessing;
public Bitmap CurrentBitmap
{
get
{
if (_currentBitmap == null)
{
_currentBitmap = new Bitmap(1, 1);
}
return _currentBitmap;
}
set { _currentBitmap = value; }
}
public string CurrentBitmapPath { get; set; }
public void ResetBitmap()
{
if (_currentBitmap != null && _bitmapbeforeProcessing != null)
{
Bitmap temp = (Bitmap)_currentBitmap.Clone();
_currentBitmap = (Bitmap)_bitmapbeforeProcessing.Clone();
_bitmapbeforeProcessing = (Bitmap)temp.Clone();
}
}
internal void RestorePrevious()
{
_bitmapbeforeProcessing = _currentBitmap;
}
}
而且:
public class RotationHandler
{
private ImageHandler imageHandler;
public void Flip(RotateFlipType rotateFlipType)
{
this.imageHandler.RestorePrevious();
Bitmap bitmap = (Bitmap) this.imageHandler.CurrentBitmap.Clone();
this.imageHandler.CurrentBitmap.Dispose(); // dispose of current bitmap
bitmap.RotateFlip(rotateFlipType);
this.imageHandler.CurrentBitmap = bitmap;
}
}
在轮换后打电话到<代码>ResetBitmap()时,显示:
参数无效
但是,如果:
this.imageHandler.CurrentBitmap.Dispose();
之后,它会进行罚款。 但是,如果将<代码>Flip(>)方法称为“记忆例外”。
我如何解决这一问题?