Garbage collection, managed heap.
Set object to null.
Application root.
Generation.
System.GC type
GC.Collect();
GC.WaitForPendingFinalizers();
class A
{
~A()
{
//clear unmanaged resources.
}
}
public interface IDisposable
{
void Dispose();
}
public class A:IDisposable
{
Private bool disposed=false;
public void Dispose()
{
//clear unmanaged resources.
}
private void CleanUp(bool disposing)
{
If(!this.disposed)
{
if(disposing)
{
//free managed resources.
}
}
disposed=true;
}
~A()
{
//clear unmanaged resources.
CleanUp(false);
}
}
Using(A a=new A())
{
//automatically call Dispose() when exit.
}