Middle
Mit jelent az IDisposable interfész C#-ban?
sobes.tech MI
Válasz az MI-től
Az IDisposable interfész a nem kezelő erőforrások felszabadításának mintáját valósítja meg, amelyek a CLR környezeten kívül vannak kezelve (például fájldeskriptorok, hálózati kapcsolatok, WinAPI handle-ek).
Fő célok:
- Határozott erőforrásfelszabadítás: Lehetővé teszi a nem kezelt erőforrások azonnali felszabadítását, ahelyett, hogy várnánk, hogy a szemétgyűjtő meghívja a végzőt (ha van).
- Erőforrás szivárgások megelőzése: Biztosítja, hogy a kritikus erőforrások a használat után felszabaduljanak, még kivétel esetén is.
- Használat a
usingkulcsszóval: Ausingszerkezet automatikusan meghívja azIDisposable-t megvalósító objektumDispose()metódusát a kódblokk végén, megbízható felszabadítást biztosítva.
A megvalósítás tartalmaz egy paraméter nélküli Dispose() metódust, amely az erőforrásokat felszabadítja. Gyakran a minta tartalmaz egy finalizálót (destruktort) az erőforrások felszabadítására, ha a Dispose() nem lett explicit meghívva, de ajánlott elkerülni a finalizálókat, és a using-re hagyatkozni.
public interface IDisposable
{
void Dispose();
}