title: Purpose and Meaning of "specialname" and "rtspecialname" in IL
body: <p>I am trying to understand the IL code and C# internals specifically nowadays, i wrote a simple c# hello world program whose code is :</p>
  
  <pre><code>using System;
  class Program
  {
      public static void Main()
      {
         Console.WriteLine("Hello World");
      }
  }
  </code></pre>
  
  <p>and here is IL generated  for the constuctor of <code>Program</code> class :</p>
  
  <pre><code>.method public hidebysig specialname rtspecialname 
          instance void  .ctor() cil managed
  {
    // Code size       7 (0x7)
    .maxstack  8
    IL_0000:  ldarg.0
    IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
    IL_0006:  ret
  } // end of method Program::.ctor
  </code></pre>
  
  <p>I am not able to understand what is the meaning and purpose of <em>specialname</em> and <em>rtspecialname</em> or what's the use of them ?</p>