我不明白为什么C#的Main
函数默认是无效的(例如在控制台项目中)。在C和C ++中,标准明确指出main必须返回int,并且使用返回值是有意义的,因为我们可以从外部程序检查返回值,看看C / C ++应用程序是否成功完成或遇到错误。
所以我的问题是:
Main
声明为void?答案 0 :(得分:16)
您可以使用 int 或 void 作为返回类型。因此,只需更改它并返回类似于C ++的值。
默认情况下,它可能是无效的,以免让初学者感到困惑。
答案 1 :(得分:12)
在C#中,您可以使用see MSDN:
static int Main()
static int Main(string[] args)
static void Main()
static void Main(string[] args)
您还可以通过两种方式返回(int)值。
在控制台应用程序中,我会使用int Main() { ...; return 2; }
在WinForms / WPF / ...应用程序中,在极少数情况下需要返回值,我会使用
Environment.ExitCode = 1;
或Environment.Exit(1);
答案 2 :(得分:7)
这并非隐含无效。在中,您不能只声明main(String [] args)并将其编译为void函数。默认项目将main()声明为void,因为默认项目没有任何有用的东西从main返回。
值得注意的是C#不是C或C ++。一些语法是相同的,但差异更大。
答案 3 :(得分:6)
为什么C#的开发人员决定将Main宣布为无效的原因我不能说。至于在应用程序完成后将值返回给操作系统,您可以使用:
System.Environment.ExitCode = 1; // Or whatever number other than 0 for errors.
答案 4 :(得分:3)
您可以更改Main的返回类型而不会出现任何问题。
答案 5 :(得分:2)
返回退出值的最佳方法是使用。我这样说是因为非零退出代码通常用于表示某些错误,通常是您不想继续的错误。使用非零退出值调用Exit
都会通过该值发出错误信号并退出程序。
Environment.Exit( value );
编辑:注意,对于控制台程序,我的语句的上下文在Main
范围内。库和其他方法应该抛出异常或返回错误值。只有您的主程序应该调用Exit
。对不起,如果不清楚的话。
答案 6 :(得分:2)
请记住,你的程序还有另一个“盒子”--CLR。当您的代码抛出未处理的异常时,它将返回错误代码。
答案 7 :(得分:0)
您可以使用Environment.Exit()
终止并向操作系统返回整数代码。或者,您可以设置Environment.ExitCode
,只要您的程序正常终止,该代码就会返回给操作系统。