Usuwanie obiektu w C# i destruktor - jakie sposoby?

0

Witam. Czytając na necie, dokładnie na CentrumXP znalazłem artykuł o usuwaniu obiektu, znalazłem dziedzieczenie z IDisposable, niestety dziwne trochę rozwiązanie jak dla mojego kodu. Chciałem po prostu usunąć mój obiekt i wywołać jednocześnie destruktor. Ustawienie = null nie wywołuje destruktora, a metodą Dispose(), jak mówię, nie chcę mi się pisać dodatkowej klasy dla usuwania jednego obiektu. Da się to jakoś inaczej zrobić, aby wywołać destruktor? W reszcie świata nic nie znalazłem interesującego. Dodam jeszcze, że nie jestem pewien czy przez null nie wywołuje się destruktor, ale obiekty trzymam tylko i wyłącznie w List<>, od razu w kontruktorze dodaję do niej.

0

Co rozumiesz przez destrukcję obiektu? Wyczyszczenie zmiennych czy zwolnienie pamięci komputera? Destruktor wywołuje się gdy kończy się czas życia obiektu(program 'opuszcza' blok w którym obiekt jest zadeklarowany), natomiast zwalnianiem pamięci zajmuje się Garbage Collector, który robi to kiedy mu się podoba :P (mocno uproszczając)

0

@Satirev Nie chodzi mi o samo usuwanie z listy, bo to mam i destruktora nie wywołuje. Przedstawię problem dokładniej. Chciałbym usunąć PictureBox'a, z menu kontekstowego, mam tam opcję "Usuń". Wszystkie instancje, które mają PictureBox'y trzymam w liście i chciałbym usunąć z formy tego PictureBox'a, w momencie usunięcia tego obiektu z listy. W destruktorze dałem PictureBox na null i Dispose i nie wiem czy działa, bo on się wywołuje tylko na koniec programu. Jak wywalić tego PictureBox'a i inne pola z mojej instancji trzymanej w liście?

0

Żeby usunąć PictureBox z formatki potrzebujesz mniej więcej czegoś takiego: this.Controls.Remove(this.pictureBox1).

0

Ok, spróbuję tak.

1 użytkowników online, w tym zalogowanych: 0, gości: 1