Why does my program work if my Main method in C# is private?
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? 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