Reputation: 3135
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 visible to the outside world?
Upvotes: 3
Views: 1078
Reputation: 37566
You're right,
it's marked as an entrypoint. Check this question: Why is Main method private?
Upvotes: 1
Reputation: 38210
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
Upvotes: 3
Reputation: 33474
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/
Upvotes: 3
Reputation: 37945
The CLR does not care about the accessibility of main
. "Visible to the outside world" only applies to the code, not the runtime.
Upvotes: 7