A common problem we see when moving to .NET all revolves around the finalizer. There are a few reasons that this happens:
- Developers move from C/C++ to C# and are used to created classes with a constructor and destructor.
- Developers don’t understand when they need to implement Dispose or Finalize and thus create them when they aren’t needed.
Read more of the article here : Understanding when to use a Finalizer in your .NET class