C# 中 EXIT_SUCCESS 和 EXIT_FAILURE 的等价物是什么?
What is the equivalent of EXIT_SUCCESS and EXIT_FAILURE in C#?
我正在启动一个进程,想检查它的退出代码是成功还是失败。
Process myProcess = new Process();
myProcess.Start();
myProcess.WaitForExit();
// What should i put instead of EXIT_SUCCESS ?
if (myProcess.ExitCode == EXIT_SUCCESS)
{
// Do something
}
EXIT_SUCCESS
似乎不存在,在 C# 中是否有等效的或规范的方法来检查零?
在检查ExitCode 之前,您应该先检查HasExited 属性。否则会抛出异常。
if (myProcess.HasExited) {
//then check exit code
}
正如@DalmTo 所说,退出代码取决于应用程序。但按照惯例,零值相当于 EXIT_SUCCESS。
来自 C/C++ 的代码通常将这些定义为常量,其中包括使用这些的 header。所以你通常有这样的东西:
#define EXIT_SUCCESS 0
以及其他一些可能的 return 代码的类似定义。毕竟,那些 "exit codes" 只是一些包含文件定义为常量的数值,而不是语言构造。
由于 C# 缺少包含和 header 文件,您可能需要手动定义它们:
private const int EXIT_SUCCESS = 0
然后在您的代码中像使用任何其他常量一样使用。所以您的示例代码现在将按预期编译和工作
if (myProcess.ExitCode == EXIT_SUCCESS)
{
// Do something
}
您可以在 MSDN 上找到 System Error Codes 参考资料:
ERROR_SUCCESS
0 (0x0)
The operation completed successfully.
由于它是唯一一个成功代码和另一个错误代码,因此该部分称为错误代码。这不是特定于 C#,仅适用于 Windows.
另请注意,您可以扫描进程的标准 input/output/error 流:
如果您使用的是非Windows环境,您应该查看相关参考。
我正在启动一个进程,想检查它的退出代码是成功还是失败。
Process myProcess = new Process();
myProcess.Start();
myProcess.WaitForExit();
// What should i put instead of EXIT_SUCCESS ?
if (myProcess.ExitCode == EXIT_SUCCESS)
{
// Do something
}
EXIT_SUCCESS
似乎不存在,在 C# 中是否有等效的或规范的方法来检查零?
在检查ExitCode 之前,您应该先检查HasExited 属性。否则会抛出异常。
if (myProcess.HasExited) {
//then check exit code
}
正如@DalmTo 所说,退出代码取决于应用程序。但按照惯例,零值相当于 EXIT_SUCCESS。
来自 C/C++ 的代码通常将这些定义为常量,其中包括使用这些的 header。所以你通常有这样的东西:
#define EXIT_SUCCESS 0
以及其他一些可能的 return 代码的类似定义。毕竟,那些 "exit codes" 只是一些包含文件定义为常量的数值,而不是语言构造。 由于 C# 缺少包含和 header 文件,您可能需要手动定义它们:
private const int EXIT_SUCCESS = 0
然后在您的代码中像使用任何其他常量一样使用。所以您的示例代码现在将按预期编译和工作
if (myProcess.ExitCode == EXIT_SUCCESS)
{
// Do something
}
您可以在 MSDN 上找到 System Error Codes 参考资料:
ERROR_SUCCESS
0 (0x0) The operation completed successfully.
由于它是唯一一个成功代码和另一个错误代码,因此该部分称为错误代码。这不是特定于 C#,仅适用于 Windows.
另请注意,您可以扫描进程的标准 input/output/error 流:
如果您使用的是非Windows环境,您应该查看相关参考。