Törölt nick Creative Commons License 2010.07.23 0 0 12429
Csak tippelni tudok.
Régebben még rendszeresen használtam a Set Akármi = Nothing utasításokat.
Aztán egy másik fórumon egy nagytudású tag felvilágosított, hogy VBA-ban, amikor egy függvény/szubrutin véget ér, az összes ott deklarált objektumváltozó (kivéve a statikusakat) megy a szemétbe. Más szóval, az End Function/End Sub implicite tartalmazza a Set Akármi = Nothing utasítást. Ennélfogva felesleges külön használni.

Megpróbáltam előkeresni azt a posztot, amiben erről írt, hogy pontosan tudjam visszaadni. De kilátástalannak tűnt a dolog, ezért inkább a neten kerestem rá, hogy mit mondanak.

Nos, a fent leírt dolog elvileg igaz, tehát felesleges lenne "kisemmizni" az objektumokat, csakhogy a VB (és VBA) azon része, amely a memória felszabadítását végzi, akár hibás is lehet. Azt mondják, különösen Access és DAO esetében lehet tapasztalni furcsaságokat, ha az ember nem használja a semmizést. Sajnos, az én tudásom nem terjed odáig, hogy ezeket a dolgokat megértsem, mert ez már nem VB(A), hanem annak is a belső működése. Plusz, lehet, hogy azóta javítottak rajta.

Az biztos, hogy baj nem származhat belőle, ha használod. (Sőt, sokan sorolják a Best Practices közé.) Legfeljebb egy nagyon kicsit hosszabb és lassabb lesz a kódod.
Én most már évek óta nem használom, de még eddig nem tapasztaltam negatív mellékhatást. (Vagy lehet, hogy igen, csak nem vontam párhuzamot?) Ezután sem tervezem használni, legfeljebb akkor, ha valami konkrét gyanú merül fel, hogy szükséges lenne.
Előzmény: Törölt nick (12428)