I am trying to understand the IL code and C# internals specifically nowadays, i wrote a simple c# hello world program whose code is :
using System;
class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
}
}
and here is IL generated for the constuctor of Program
class :
.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
I am not able to understand what is the meaning and purpose of specialname and rtspecialname or what's the use of them ?