多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
`Main`方法是 C# 应用程序的入口点。 (库和服务不要求使用`Main`方法作为入口点)。`Main`方法是应用程序启动后调用的第一个方法。 ``` class TestClass { static void Main(string[] args) { // Display the number of command line arguments. Console.WriteLine(args.Length); } } ``` 自 C# 9 起,可以省略`Main`方法,并像在`Main`方法中一样编写 C# 语句,如下面的示例所示: ``` using System.Text; StringBuilder builder = new(); builder.AppendLine("Hello"); builder.AppendLine("World!"); Console.WriteLine(builder.ToString()); ``` ## 总结 * `Main`方法是可执行程序的入口点,也是程序控制开始和结束的位置。 * `Main`在类或结构中声明。`Main`必须是[`static`](https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/static),它不需要是[`public`](https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/public)。 (在前面的示例中,它获得的是[`private`](https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/private)成员的默认访问权限)。封闭类或结构不一定要是静态的。 * `Main`可以具有`void`、`int`,或者以 C# 7.1、`Task`或`Task<int>`返回类型开头。 * 当且仅当`Main`返回`Task`或`Task<int>`时,`Main`的声明可包括[`async`](https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/async)修饰符。 这明确排除了`async void Main`方法。 * 使用或不使用包含命令行自变量的`string[]`参数声明`Main`方法都行。 使用 Visual Studio 创建 Windows 应用程序时,可以手动添加此形参,也可以使用[GetCommandLineArgs()](https://docs.microsoft.com/zh-cn/dotnet/api/system.environment.getcommandlineargs#system-environment-getcommandlineargs)方法来获取命令行实参。 参数被读取为从零开始编制索引的命令行自变量。 与 C 和 C++ 不同,程序的名称不被视为`args`数组中的第一个命令行实参,但它是[GetCommandLineArgs()](https://docs.microsoft.com/zh-cn/dotnet/api/system.environment.getcommandlineargs#system-environment-getcommandlineargs)方法中的第一个元素。 ``` public static void Main() { } public static int Main() { } public static void Main(string[] args) { } public static int Main(string[] args) { } public static async Task Main() { } public static async Task<int> Main() { } public static async Task Main(string[] args) { } public static async Task<int> Main(string[] args) { } ```