Middle
Milleks on C#-s vajalik liides IDisposable?
sobes.tech AI
Vastus AI-lt
IDisposable liides kasutatakse malli ressursside vabastamiseks, mida hallatakse väljaspool CLR-keskkonda (näiteks failide kirjeldajad, võrguliidesed, WinAPI-hendlid).
Peamised eesmärgid:
- Deterministlik ressursside vabastamine: võimaldab selgelt vabastada mittehallatavaid ressursse kohe, mitte oodata, kuni kogujad kutsuvad finaliseerijat (kui see on).
- Resursside lekkimise ennetamine: tagab, et kriitilised ressursid vabastatakse pärast kasutamist, isegi erandite korral.
- Kasutamine koos võtmesõnaga
using:using-struktuur kutsub automaatselt väljaDispose()meetodi objektile, mis implementeeribIDisposable, koodi lõpus, tagades usaldusväärse vabastamise.
Implementatsioon sisaldab parameetrita Dispose() meetodit, mis vabastab ressursid. Sageli sisaldab muster finaliseerijat (destruktorit), et vabastada ressursid juhul, kui Dispose() ei ole otseselt kutsutud, kuid soovitatakse vältida finaliseerijaid ja tugineda using-le.
public interface IDisposable
{
void Dispose();
}