В последнее время я читал о интерфейсе IDisposable (этот вопрос был весьма полезен Proper use of the IDisposable interface), а также об использовании использования оператора (topic Uses of "using" in C#). Затем я начал задаваться вопросом, что, если я должен каким-то образом освободить свой собственный класс коллекции из памяти.Класс коллекции и IDisposable интерфейс
class User{
private string username {set;get;}
private string password {set;get;}
...
}
Следует ли реализовать интерфейс IDisposable?
class User : IDisposable
{
...
public void Dispose()
{
this.Dispose();
}
}
поэтому он может быть освобожден из памяти? Или GC делает это автоматически, и я не должен даже беспокоиться об этом.
Насколько я понимаю, важно освобождать неуправляемые ресурсы, такие как соединения с БД и т. Д., Но что касается этих классов коллекций. Поскольку я использую их довольно часто, я действительно начал меня пугать.
tl; dr; Должен ли я реализовать IDisposable в классе User?
С уважением.
редактирования: спасибо всем за ответы!
Вам нужно реализовать 'IDisposable', только если ваш класс выделяет неуправляемые ресурсы и/или имеет члены класса' IDisposable'. Итак, в вашем случае ответ «Нет», вам не нужно делать этот класс одноразовым. –