Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:csharp:程序入口

C#程序入口


Main函数

需要一个且仅有一个的static void Main(string[] args)函数,大小写敏感,参数可以不要,返回值可以是int或者void,不管在哪个类中声明都可以,权限也默认就好

全局语句

C#如果有全局语句的话,入口就是全局语句,这时Main函数就会被忽略,全局语句必须在(所在文件的)所有命名空间和类型定义之前,数量也只能有一处(同一个程序集所有文件内只能有一处,因为就一个程序入口,是连续的一段,可以有很多行),多了也会冲突,要注意的是全局语句是指逻辑语句,不能声明变量或者定义函数,因为C#没有全局变量或全局函数。

using System;
using System.Diagnostics;
 
Console.WriteLine("Main");
MainProgram.Start(); // 调用在定义之前也是可以的
 
class MainProgram {
    static public void Start() { Console.WriteLine("Start"); }
}

想法:对比一下各个语言调用函数的顺序要求:

  • Python:调用函数前必须定义,解释型语言没办法
  • C/C++:调用函数前(就是在文件中调用的位置前)必须有定义或者声明(这是受限于什么?)
  • C#:不要求函数定义在函数调用之前

所以C#在全局语句中,可以调用在本文件内定义的其他函数,即使定义在调用之后(因为全局语句要在文件最前面)

/var/www/DokuWikiStick/dokuwiki/data/pages/程序/csharp/程序入口.txt · Last modified: 2022/08/19 09:39 by zh