【发布时间】:2017-01-11 14:39:56
【问题描述】:
在 C# 中,您可以为主要方法使用 4 种不同的方法签名:
static void Main(string[] args) {}
static int Main(string[] args) { return 0; }
static void Main () {}
static int Main {return 0;}
在进一步研究 Main 时,该参考文献指出,即使您构造一个原型化为返回 void 的 Main() 方法,也会自动返回值 0。
话虽如此,你为什么要使用一个签名返回一个 int 的 Main 方法,如果它无论如何都会返回呢?我知道返回值保存在一个名为 %ERRORLEVEL% 的变量中,并且您可以使用批处理文件捕获此代码,我只是好奇总是提供返回值。谢谢。
【问题讨论】:
-
返回值可以在另一个应用程序中使用。这是在批处理文件中运行并需要报告错误的文件的标准行为。
-
当您的应用程序被用作命令行实用程序时很有用,如果应用程序失败,您可以返回 -1 。一个示例自动数据库部署实用程序,它读取一些 sql 文件并将它们执行到目标服务器。好处是您可以在构建/部署工具中添加实用程序,如果失败,它们将出错。