Difference between Dispose and Finalize Method in C# with Example

Difference between Dispose and Finalize Method in C# with Example




Other Asp.net related Examples Post which are consider in this asp.net blog:

·                     Containing sub string in string Using JavaScript
·                     Hide radio buttons in JavaScript on button click
·                     Add or bind tooltip for dropdownlist items in asp.net by C#
·                     How to use asp ListView control in asp.net:
·                     Example of Adding ToolTip for each Dropdown List Item in C#
·                     How to bind data to textbox inside Gridview in asp.net using C#
·                     Add tooltip for dropdownlist items in asp.net with C# Example
·                     Add ListItem in DropDownList asp.net c# Example:
·                     Advantages and disadvantages in asp.net of QueryString
·                     How to Use Query String in asp.net
·                     Asp.net Query String with c# Example
·                     how to use grid within grid in asp.net example
·                     Dropdownlist in asp.net grid view
·                     Templatefield in gridview control


Here I will explain difference between dispose and finalize methods in c#, vb.net with example.

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.

Example of Dispose:



//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.    

Example of Finalize: 

// implementing Finalize method
public class Sample
{
//At runtime destructor automatically converted to finalize method.
~Sample ()
{
// your clean up code
}

Comments