C# has static constructor which do some initialization (likely do some unmanaged resource initialization).
I am wondering if there is static destructor?
No there is nothing like destructor for static classes but you can use Appdomain.Unloaded event if you really need to do something
Appdomain.Unloaded