首页 文章

C#入口点功能

提问于
浏览
18

是否sta void main()是C#中入口点函数所必需的,或者我们可以使用其他一些函数吗?为什么main()是静态的?

4 回答

  • 18

    Static Void Main()是在C#中创建的任何"Executable"( .EXE )的必要入口点 . 库(或.DLL)可以有其他入口点 .

    该方法是静态的,因为这是访问该方法所必需的,而不需要要处理的对象实例 . 为了从应用程序外部调用方法(起始点),需要静态方法 .

  • 11

    是的,它必须是 Main . 它可能必须有一个无参数构造函数,即使你不想要一个类型的实例,等等 . 你为什么要强制它成为一个实例方法?

  • 4

    所需的入口点实际上是:

    static void Main(string[] args); // note capitalization and arguments
    

    Main 必须是静态的原因是必须在调用其上的任何方法之前构造非静态对象 . 由于 Main 是程序的入口点,谁将调用它的构造函数?

    (是的,您可以让CLR要求具有 Main 的类包含默认的无参数构造函数,并在全局启动期间使CLR调用该构造函数 . 但是's extra work, and in practice it'更容易要求 Main 是静态的 . )

  • 1

    对于c#应用程序,是 Main() 必须是入口点 .

    原因是因为语言的设计者决定将其作为您的程序的切入点 . 他们也可以使用完全不同的方法来找到入口点,例如使用元数据,或为您实例化一个对象(这将需要一个无参数的构造函数) . 将其命名为 void main() 的另一个原因是它对于来自其他语言的用户来说是直观的 .

相关问题