Я новичок в C #, я на самом деле понимаю концепцию деструктора и дипозиметрического метода и разницу между ними и тем, как на самом деле GC вызывается / предотвращается от этих операций.Но когда я пытаюсь понять, что на самом деле мы выпускаем внутри этих методов, я застреваю.
Во-первых, определение пустого деструктора или вывода на консоль ничего хорошего не даст для освобождения неиспользуемой памяти.Итак, что я должен написать внутри деструктора, либо сделать поля класса пустыми или как?Я знаю, что GC позаботится об управляемых ресурсах, так что, если я столкнулся с неуправляемыми ресурсами
, я обычно нахожу этот знакомый пример по всем форумам и поискам, но ни у одного нет ясности относительно того, что должно быть написано для выпуска.неиспользуемая память
class Test : IDisposable
{
private bool isDisposed = false;
~Test()
{
Dispose(false);
}
protected void Dispose(bool disposing)
{
if (disposing)
{
// Code to dispose the managed resources of the class
}
// Code to dispose the un-managed resources of the class
isDisposed = true;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
Я понимаю пример, но какой код должен находиться в закомментированных строках внутри метода dispose ( // Код для удаления управляемых ресурсов класса & // Код для удаления неуправляемых ресурсов класса ).Кто-нибудь может дать мне пример, который бы разрешил мои сомнения