Why not static destructors in C#
<p>I am interested in knowing why static destructors are not allowed in C#. Note that I am not supposing that they exist in any other language.</p>

<p>I could have a class like this one.</p>

<pre><code> class A
 {
      static A()
      {
         // here I can load a resource that will be avaliable for all instances 
         // of this class.
      }
 }
</code></pre>

<p>When the application ends I may need to release the resource.</p>

<p>So, the semantic of a static destructor could be the following: called when the application ends, for classes that contain it and were initialized in the app.</p>
