C#中EXIT_SUCCESS和EXIT_FAILURE的等价物是什么?

Dra*_*rax 4 .net c# process exit-code

我正在启动一个进程,并希望检查其退出代码是否成功.

Process myProcess = new Process();

myProcess.Start();

myProcess.WaitForExit();

// What should i put instead of EXIT_SUCCESS ?
if (myProcess.ExitCode == EXIT_SUCCESS) 
{
  // Do something
}
Run Code Online (Sandbox Code Playgroud)

EXIT_SUCCESS 似乎不存在,C#中是否存在等效或规范的方式来检查零?

VMA*_*Atm 7

您可以在MSDN上找到系统错误代码参考:

ERROR_SUCCESS
0(0x0)操作成功完成.

因为它是唯一的成功代码和其他错误代码,所以该部分称为错误代码.这不是特定于C#,仅适用于Windows.

另请注意,您可以扫描过程的标准输入/输出/错误流:

如果您使用的是非Windows环境,则应检查相关参考.


Ale*_*dro 4

在 C/C++ 代码中,通常这些被定义为某些使用它们的包含头中的常量。所以你通常会有这样的东西:

#define EXIT_SUCCESS 0
Run Code Online (Sandbox Code Playgroud)

对于其他一些可能的返回码也有类似的定义。毕竟,这些“退出代码”只是一些包含文件定义为常量的数值,而不是语言结构。由于 C# 缺少包含文件和头文件,您可能需要手动定义它们:

private const int EXIT_SUCCESS = 0
Run Code Online (Sandbox Code Playgroud)

然后在代码中像任何其他常量一样使用。因此,您的示例代码现在将按预期进行编译和工作

if (myProcess.ExitCode == EXIT_SUCCESS) 
{
  // Do something
}
Run Code Online (Sandbox Code Playgroud)