C#语法手册

Main函数


Main 方法是 C# 应用程序的入口点。 (库和服务不要求使用 Main 方法作为入口点)。Main 方法是应用程序启动后调用的第一个方法。
C# 程序中只能有一个入口点。 如果多个类包含 Main 方法,必须使用 StartupObject 编译器选项来编译程序,以指定将哪个 Main 方法用作入口点。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSGDemoCSG004
{
    //https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/main-and-command-args/
    public class Program
    {
        //#csg004-01
        //无返回值,不使用args的Main函数
        static void Main()
        {
            //你的代码...
        }
    }

    public class Program2
    {
        //#csg004-02
        //有返回值,使用args的Main函数
        //args 数组不能为 null。 因此,无需进行 null 检查即可放心地访问 Length 属性。
        //args以字符串数组的形式提供,如下
        //若命令行的输入为  myapp.exe a b "c" 则 args 数组的值为 ["a","b","c"]
        static int Main(string[] args)
        {
            return 0;
            //在 Windows 中执行程序时,从 Main 函数返回的任何值都存储在环境变量中。
            //可使用批处理文件中的 ERRORLEVEL 或 PowerShell 中的 $LastExitCode 来检索此环境变量。
            //0指示程序运行成功,而非零值说明程序运行失败。
        }
    }

    public class Program3
    {
        //#csg004-03
        //异步主函数
        static async Task<int> Main(string[] args)
        {
            //异步主函数使你可以在主函数中使用 await 异步操作。
            return 0;
        }
    }


    //#csg004-04
    //主函数共有8种组合方式
    //无返回值,不使用 await: static void Main(string[] args)
    //返回值,不使用 await:   static int Main(string[] args)
    //无返回值,使用 await:   static async Task Main(string[] args)
    //返回值,使用 await:     static async Task<int> Main(string[] args)
    //无返回值,不使用 await: static void Main()
    //返回值,不使用 await:   static int Main()
    //无返回值,使用 await:   static async Task Main()
    //返回值,使用 await:     static async Task<int> Main()



}