У меня есть класс "skImage". У этого класса есть закрытая переменная (с открытым свойством, которое ее выставляет)
private Image _capturedImage;
конструктор этого класса выглядит так:
public skImage(Image captured) {
_capturedImage = captured;
}
Он также имеет следующий метод:
public bool Invert() {
Bitmap b = new Bitmap(_capturedImage);
unsafe {
//random code not relevant.
}
_capturedImage = b;
b.Dispose();
return true;
}
и затем у него есть метод save (), который просто вызывает:
_capturedImage.Save(_saveFullLocation);
Теперь, если я запускаю метод инвертирования и затем пытаюсь вызвать save, он выдает исключение (параметр недействителен). После поиска в Google это исключение кажется, что я избавляюсь от изображения. Я вижу, что я располагаю буквой «б» после метода инвертирования.
Мой вопрос таков: когда я делаю _capturedImage = b
, означает ли это, что обе переменные теперь содержат одну ссылку на объект? Я этого не хочу. Я хочу, чтобы b было уничтожено, чтобы освободить память, чтобы ГХ мог ее собрать. Как передать b в _capturedImage и уничтожить b.
спасибо