Dokončuje likvidaci hovoru?

Obsah:

Dokončuje likvidaci hovoru?
Dokončuje likvidaci hovoru?

Video: Dokončuje likvidaci hovoru?

Video: Dokončuje likvidaci hovoru?
Video: ANULOWANA STRZELANKA od Piranha Bytes [PL] 2024, Listopad
Anonim

Pokud držíte nativní zdroje, implementujete jak Dispose, tak Finalize a obě zavoláte společnou metodu, která uvolní nativní zdroje. Tyto idiomy jsou obvykle kombinovány prostřednictvím soukromé metody Dispose (bool disposing), která volá Dispose s true a volání Finalize s false.

Kdy použít finalizaci vs. Likvidaci?

Metoda throw() se používá k uvolnění nespravovaných zdrojů, kdykoli je vyvolána. Metoda finalize() se používá k uvolnění nespravovaných zdrojů před zničením objektu. Metoda throw() se má implementovat vždy, když existuje metoda close().

Jaký je rozdíl mezi metodami Likvidace a Finalizace?

Hlavní rozdíl mezi vyřazením a finalizací je v tom, že metodu vyřazení musí explicitně vyvolat uživatel, zatímco metodu finalizace vyvolá sběrač odpadu těsně před objekt je zničen.

Vyhovuje používání hovoru?

Příkaz using zajišťuje, že Dispose je voláno, i když dojde k výjimce během volání metod na objektu. Stejného výsledku můžete dosáhnout vložením objektu do bloku try a následným voláním Dispose v bloku konečně; ve skutečnosti je takto překladač překládán příkaz using.

Mám zavolat Dispose C?

4 odpovědi. Základní pravidlo: pokud třída implementuje IDisposable, měli byste vždy volat metodu Dispose, jakmile skončíte s používáním tohoto zdroje Ještě lepší je zabalit ji do příkazu using, abyste zajistili, že metoda Dispose bude být volán, i když je vyvolána výjimka: using (var reader=conn.

Doporučuje: