Junior — Middle
У којим случајевима је потребно ручно ослобађање меморије додељене за податке?
sobes.tech АИ
Одговор од АИ
U C#-u, memorija se obično automatski upravlja putem sakupljača smeća, i ručno oslobađanje memorije nije potrebno. Međutim, postoje situacije kada je potrebno ručno osloboditi resurse:
- Kada radite sa nermanaged resursima (fajlovi, mrežne veze, deskriptori itd.). Ovi objekti obično implementiraju interfejs
IDisposable, i treba da pozovete metoduDispose()ili koristite konstrukcijuusing. - Kada koristite nesiguran kod (
unsafe), gde se memorija ručno dodeljuje putem pokazivača.
Primer korišćenja using za automatsko oslobađanje resursa:
using (var file = new FileStream("file.txt", FileMode.Open))
{
// Rad sa fajlom
} // Ovde će automatski biti pozvan Dispose i resursi će biti oslobođeni
Dakle, ručno oslobađanje memorije je potrebno kada radite sa resursima van upravljane memorije .NET-a.