C#中Main函数为什么要static

假设没有static关键字,那意味着需要用生成一个实例后才可以调用这个Main方法,而Main方法是程序入口点,你没有进入Main方法,自然无法生成一个实例,既然没有实例,那就无法调用Main函数,岂不矛盾?所以Main函数被设置为static.

Main()函数在C#里非常特殊,它是编译器规定的所有可执行程序的入口点。由于其特殊性,对Main()函数我们有以下几条准则:

1)Main()函数必须封装在类或结构里来提供可执行程序的入口点。C#采用了完全的面向对象的编程方式,C#中不可以有像C++那样的全局函数。

2)Main()函数必须为静态函数(static)。这允许C#不必创建实例对象即可运行程序。

3)Main()函数保护级别没有特殊要求, public,protected,private等都可,但一般我们都指定其为public。

4)Main()函数名的第一个字母要大写,否则将不具有入口点的语义。C#是大小写敏感的语言。

5)Main()函数的参数只有两种参数形式:无参数和string 数组表示的命令行参数,即static void Main()或static void Main(string[]args) ,后者接受命令行参数。一个C#程序中只能有一个Main()函数入口点。其他形式的参数不具有入口点语义,C#不推荐通过其他参数形式重载Main()函数,这会引起编译警告。

6)Main()函数返回值只能为void(无类型)或int(整数类型)。其他形式的返回值不具有入口点语义。

在C#中,static变量表示该变量属于类,而不是类的实例。"static"修饰符声明一个静态元素,而该元素属于类型本身而不是指定的对象,可以说是该类的所有实例共享一个static变量。

原文地址:https://www.cnblogs.com/haxianhe/p/9271186.html