why does it exist?
It exists for classes in which you care about your life, in particular, when a class wraps a resource in the OS and you want to release it immediately. Otherwise, you have to wait for the CLR (non-deterministic) finalizers.
Examples, file descriptors, database connections, socket connections, ....
pm100
source share