开发者

Why does my program work if my Main method in C# is private?

By d开发者_如何学Goefault 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?


The CLR does not care about the accessibility of main. "Visible to the outside world" only applies to the code, not the runtime.


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/


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


You're right,

it's marked as an entrypoint. Check this question: Why is Main method private?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜