Garbage collection is a special feature of CLR which automatically manages memory. Some times programmers will forget to release unused objects. CLR releases objects when they are no longer referenced. It runs on non-deterministic code to see unused objects and destroy them. One side effect of these non-deterministic code that we can't assume the object is deleted when it goes out of the scope. So, we don't need to put destructor to destroy these objects.