Main
方法是 C#
应用程序的入口点。 (库和服务不要求使用 Main
方法作为入口点)。Main
方法是应用程序启动后调用的第一个方法。
C#
程序中只能有一个入口点 如下示例:
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
,它不需要是 public
。 (在前面的示例中,它获得的是private
成员的默认访问权限)。Main
的返回类型可以是 void、int、Task
或 Task<int>
。Main
返回 Task
或 Task<int>
时,Main
的声明可包括 async
修饰符。 这明确排除了 async void Main
方法。string[]
参数声明 Main
方法都行。 使用 Visual Studio
创建 Windows
应用程序时,可以手动添加此形参,也可以使用 Environment.GetCommandLineArgs()
方法来获取命令行实参。 参数被读取为从零开始编制索引的命令行自变量。 与 C
和 C++
不同,程序的名称不被视为 args
数组中的第一个命令行实参,但它是 Environment.GetCommandLineArgs()
方法中的第一个元素。以下列表都是有效的 Main
签名:
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) { }