Let's assume there is a class like this:
public class NewClass : IDisposable
{
  public string name {get; set;}
  public NewClass(string Name)
  {
    name = Name;
  }
  ~NewClass()
  {
    Dispose(false);
  }
   public void Dispose()
   {
    Dispose(true);
    System.GC.SuppressFinalize(this);
   }
}
- What does the ~NewClass() mean here? 
- When and why to use expressions such as "~NewClass()" (Finalizers / Destructor (C# Programming Guide)) inside a class? .... and how would it help?