Dispose Pattern
Base Class
abstarct class BaseClass{
private bool _disposed = false
protected virtual void Dispose(bool disposing){
if(_disposed){
return;
}
if(!disposing){
//Free managed objects
}
//Free any other objects
_disposed = true;
}
}
Implement Class
class ImplClass : BaseClass{
private bool _disposed = false;
protected override void Dispose(bool disposing){
if(_disposed){
return;
}
if(disposing){
//Free managed objects
}
//Free any other objects
_disposed = true;
base.Dispose(disposing);
}
}