Answers:
3种选择:
Main
如果声明Main
要返回的方法,则可以从中返回它int
。Environment.Exit(code)
。Environment.ExitCode = -1;
。如果没有其他设置返回代码或使用上述其他选项之一的情况,将使用此方法。根据您的应用程序(控制台,服务,Web应用程序等),可以使用不同的方法。
0
表示成功,而非零表示失败。return;
通过退出代码指示成功0
,并return -1;
指示失败。
除了回答return int的答案外,还...出于理智。请在枚举中定义您的退出代码,并在适当的地方加上Flags。它使调试和维护变得非常容易(而且,此外,您可以在帮助屏幕上轻松打印出退出代码-您确实有其中之一,对吗?)。
enum ExitCode : int {
Success = 0,
InvalidLogin = 1,
InvalidFilename = 2,
UnknownError = 10
}
int Main(string[] args) {
return (int)ExitCode.Success;
}
0 = Success
是这样的事实:仅需要一个成功代码,但是许多错误代码(例如,计算机整数中没有+或-的0可以用来唯一地标识成功)
您可以使用三种方法从控制台应用程序返回退出代码。
Main
应用程序中的方法,以使其返回int
而不是void
(在VB.Net 中返回Integer
而不是的函数Sub
),然后从该方法返回退出代码。Main
方法返回的其他值void
(Sub
在VB.Net中为),则将忽略此属性的值。应该遵守的一个重要标准是0
代表“成功”。
在相关主题上,请考虑使用枚举定义应用程序将要返回的退出代码。该的FlagsAttribute将允许您返回码的组合。
另外,请确保您的应用程序被编译为“控制台应用程序”。
Environment.ExitCode
不会立即Environment.Exit
关闭程序,但是方法会立即关闭程序
Process
对象启动,则可以要求该对象访问WaitForExit()
,然后向其请求退出代码。
如果要使用David建议的方法,还应该查看[Flags]属性。
这使您可以对枚举执行按位操作。
[Flags]
enum ExitCodes : int
{
Success = 0,
SignToolNotInPath = 1,
AssemblyDirectoryBad = 2,
PFXFilePathBad = 4,
PasswordMissing = 8,
SignFailed = 16,
UnknownError = 32
}
然后
(ExitCodes.SignFailed | ExitCodes.UnknownError)
将是16 +32。:)
int code = 2;
Environment.Exit( code );
System.Environment.ExitCode
http://msdn.microsoft.com/zh-CN/library/system.environment.exitcode.aspx
只需从main返回适当的代码即可。
int main(string[] args)
{
return 0; //or exit code of your choice
}
static void Main(string[] args);
如果您的主体具有无效的返回签名,请使用ExitCode,否则,您需要通过返回的值对其进行“设置”。
如果Main方法返回void,则可以使用此属性设置将返回到调用环境的退出代码。如果Main不返回void,则将忽略此属性。此属性的初始值为零。
作为Scott Munro 答案的更新:
Main
无效。main
入口点的返回值。Main()
并没有设置Process.ExitCode
调用应用程序所看到的。
int Main
仍然可以用作Environment.ExitCode的替代方法。 链接
枚举选项非常好,但是可以通过将数字乘以来改进,如下所示:
enum ExitCodes : int
{
Success = 0,
SignToolNotInPath = 1,
AssemblyDirectoryBad = 2,
PFXFilePathBad = 4,
PasswordMissing = 8,
SignFailed = 16,
UnknownError = 32
}
如果出现多个错误,将特定的错误编号加在一起将为您提供一个唯一的编号,该编号代表检测到的错误的组合。
例如,错误级别6只能由错误4和2组成,12只能由错误4和8组成,14只能由2、4和8等组成。
我的2美分:
您可以在此处找到系统错误代码: https //msdn.microsoft.com/zh-cn/library/windows/desktop/ms681382(v=vs.85).aspx
您会发现典型的代码,例如2代表“找不到文件”或5代表“拒绝访问”。
当您偶然发现未知代码时,可以使用以下命令找出含义:
net helpmsg decimal_code
例如
网络帮助信息1
退货
功能不正确