Dispose() Method
- This dispose method will be used to free unmanaged resources like files, database connection etc. - To clear unmanaged resources we need to write code manually to raise dispose() method. - This Dispose() method belongs to IDisposable interface. - If we need to implement this method for any custom classes we need to inherit the class from IDisposable interface. - It will not show any effect on performance of website and we can use this method whenever we want to free objects immediately.
- This dispose method will be used to free unmanaged resources like files, database connection etc.
- To clear unmanaged resources we need to write code manually to raise dispose() method.
- This Dispose() method belongs to IDisposable interface.
- If we need to implement this method for any custom classes we need to inherit the class from IDisposable interface.
- It will not show any effect on performance of website and we can use this method whenever we want to free objects immediately.
Example
//Implement Dispose Method.public class TestDispose : IDisposable{private bool disposed = false;
//Implement IDisposable.public void Dispose(){Dispose(true);}
protected virtual void Dispose(bool disposing){if (!disposed){if (disposing){// clean unmanged objects}// clean unmanaged objects).
disposed = true;}}}
Finalize() Method
- This method also free unmanaged resources like database connections, files etc… - It is automatically raised by garbage collection mechanism whenever the object goes out of scope. - This method belongs to object class. - We need to implement this method whenever we have unmanaged resources in our code and make sure these resources will be freed when garbage collection process done. - It will show effect on performance of website and it will not suitable to free objects immediately.
- This method also free unmanaged resources like database connections, files etc…
- It is automatically raised by garbage collection mechanism whenever the object goes out of scope.
- This method belongs to object class.
- We need to implement this method whenever we have unmanaged resources in our code and make sure these resources will be freed when garbage collection process done.
- It will show effect on performance of website and it will not suitable to free objects immediately.
// Implementing Finalize methodpublic class Sample{//At runtime destructor automatically Converted to Finalize method.~Sample(){// your clean up code}}
Check here : https://techdifferences.com/difference-between-dispose-and-finalize-in-c-sharp.html