2019-12-16,Main() 方法是 C# 应用程序的入口点

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

概述

  • Main 方法是可执行程序的入口点,也是程序控制开始和结束的位置。
  • Main 在类或结构中声明。 Main 必须是静态方法,不得为公共方法。 (在前面的示例中,它获得的是私有成员的默认访问权限)。封闭类或结构不一定要是静态的。
  • Main 可以具有 voidint,或者以 C# 7.1、TaskTask<int> 返回类型开头。
  • 当且仅当 Main 返回 TaskTask<int> 时,Main 的声明可包括 async 修饰符。 请注意,该操作可明确排除 async void Main 方法。
  • 使用或不使用包含命令行自变量的 string[] 参数声明 Main 方法都行。 使用 Visual Studio 创建 Windows 应用程序时,可以手动添加此形参,也可以使用 GetCommandLineArgs() 方法来获取命令行实参。 参数被读取为从零开始编制索引的命令行自变量。 与 C 和 C++ 不同,程序的名称不被视为 args 数组中的第一个命令行实参,但它是 GetCommandLineArgs() 方法中的第一个元素。

以下是有效 Main 签名的列表:

Main() 返回值:
public static void Main() { } 退出代码将为隐式 0。
public static int Main() { return 0;}
Main 的返回值视为进程的退出代码。

定义方法来将自变量发送到 Main 方法:
public static void Main(string[] args) { }
public static int Main(string[] args) { }
Main 方法的参数是一个表示命令行参数的 String 数组。

Async Main 返回值将在 Main 中调用异步方法时所需的样本代码移动到编译器生成的代码中:
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) { }

以前的语法。
public static void Main()
{
AsyncConsoleWork().GetAwaiter().GetResult();
}

private static async Task<int> AsyncConsoleWork()
{
// Main body here
return 0;
}

新语法。
static async Task<int> Main(string[] args)
{
return await AsyncConsoleWork();
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,719评论 0 17
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,935评论 0 2
  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 11,960评论 0 9
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 7,046评论 0 4
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 7,593评论 0 3