By default the type modifier for every member in a class is a private, even the Main() function type modifier is private. How does the CLR call the main method which is not visi
You're right,
it's marked as an entrypoint. Check this question: Why is Main method private?
Thats not true.
It has to be public. For e.g. public static void Main()
.
EDIT: Here is what I found & learned today, on why Main
need not be public
.
http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/9184c55b-4629-4fbf-ad77-2e96eadc4d62/
The CLR does not care about the accessibility of main
. "Visible to the outside world" only applies to the code, not the runtime.
Try using ildasm on your code and lookout for the main method
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint // this is something the CLR is interested in