_Q12_ Ответов: 1

Как создать dispose() внутри простого класса ?


Как создать Dispose() внутри простого класса ?

Что я уже пробовал:

    public class Hero  // this is a simple class
    {
       public void Initialize()
       { 
           imgHero = Bitmap.FromFile(root + "spaceshipHero1.png");
       } 

       Image imgHero;
       string root = @"D:\Programe\Info\Visual Studio 2010\Projects\Game\Shoot-em\Shoot-em\bin\Debug\";
       int Width = 80; int Height = 90;
     

       public int X = 50;
       public int Y = 50;


       public void canvas_Paint(object sender, PaintEventArgs e)
       {
           e.Graphics.DrawImage(imgHero, new Rectangle(X, Y, Width, Height));
       }
       public void Pozition(int x, int y)
       {
           X = x; Y = y;
       }
       public void Resize(int width, int height)
       {
           Width = width; Height = height;
       }
     
       public void Dispose()
       {
// what is the code here that Garbage collector will clean this object efficiently?
// ex:Hero hero = new Hero();<new object  hero.Dispose();<clean new object
       }

    }
Thank you.

1 Ответов

Рейтинг:
10

F-ES Sitecore

Используйте IDisposable

IDisposable Interface (System) | Microsoft Docs[^]

Вероятно, вы захотите сделать "imgHero.Dispose();" в своем методе Dispose. Единственные другие вещи, на которые вы ссылаетесь, не нуждаются в утилизации.


_Q12_

Я скопировал этот длинный код в свой класс героев и изменил его
// Конструктор класса.
публичный герой(IntPtr handle)
и
~Герой()

Но теперь, когда я создаю объект:
публичный герой герой = новый герой();
ожидает "дескриптор IntPtr" для нового героя(); часть
скриншот: https://i.imgur.com/6nTB9dc.png

_Q12_

хорошо, я прочитал ваш sugestion и думаю, что это ваше решение, не так ли?

общественного недействительными распоряжения()
{
imgHero.Распоряжаться();
}
Ваш "imgHero.Dispose ();" - очень хороший трюк!
Я не использовал его до сих пор так или каким-либо другим способом.

_Q12_

Все равно не очень хороший ответ !
Я хочу избавиться от самого объекта, после его создания !!!
Новый объект, объект.!!!
Если я создаю 1000 объектов, я хочу очистить их и их свойства из формы 1, где я их создаю.

_Q12_

Теперь я прояснил этот вопрос, и вы помогли.
Спасибо.