C#入口点function

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

是的,它必须是Main 。 它是静态的,因为否则CLR需要担心创建该类型的实例 – 这意味着你可能必须拥有一个无参数的构造函数,即使你不想要一个类型的实例,等等。为什么你想要强制它成为实例方法?

对于ac#应用程序,是的, Main()必须是入口点。

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

Static Void Main()是在C#中创建的任何“可执行文件”( .EXE )的必要入口点。 库(或.DLL)可以有其他入口点。

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

所需的入口点实际上是:

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

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

(是的,您可以让CLR要求具有Main的类包含默认的无参数构造函数,并在全局启动期间使CLR调用该构造函数。但这是额外的工作,并且在实践中更容易要求Main是静态的。)