2015-11-04 53 views
0

Enviornment.Exit()方法可以返回32位数。 是否有可能在命令行执行模式下返回64位数字C#命令行模式返回64位数

我正在使用Enviornment.Exit()返回计算值,而不是错误代码,以便另一个批处理文件直接读取。

有什么办法可以直接退出一个64位的值,而不是像使用临时存储如注册表/文件?

+2

为什么有人需要这个? 'Int32'有足够的范围来保持所有[系统错误代码](https://msdn.microsoft.com/library/ms681381.aspx)。请注意,存在从“Int32”到“Int64”的隐式对话。 –

+0

如果是针对IPC,您可能需要使用其他方法而不是过程返回码。如果它是错误的......哇...你映射了这么多不同的错误?!?!? –

+0

我假设你的目标是Windows? – Bathsheba

回答

0

Windows使用32位有符号整数作为退出代码,所以很遗憾,您不能这样做。

0

不,因为当前点网络框架中的数字被定义为一个整数。 Ref:“ExitCode”https://msdn.microsoft.com/en-us/library/system.environment.exitcode%28v=vs.110%29.aspx

此外,这是Windows应用程序返回一个32位整数作为退出代码的基本规则。一个标准如此。你不想偏离这一点。

还要注意他们的that MSDN page

则exitCode属性是一个符号的32位整数的话。要防止该属性返回负面的退出代码,您不应使用大于或等于0x80000000的值。

另外,你能告诉我们为什么你想要返回一个64位数?是不是有另一种翻译“exitcode”的方法?

+0

我正在使用Enviornment.Exit()返回计算值,而不是错误代码,以便另一个应用程序直接读取。 – Nalanchiracoder

+0

这不是很好的做法,我推荐使用不同的策略让两个应用程序进行通信。出口代码在那里给出明确的指示,让其他系统/应用程序知道是否有错误。正如MSDN所说:“使用非零数字表示错误。”换句话说,它不是工作的工具,你应该考虑采用不同的策略来沟通输出。 ExitCode表示成功或错误。 –

+0

我不知道你的应用场景。如果你能更详细地描述,那么我们就能提供更多的帮助。但一般来说有不同的选择。输出到文件或输出到控制台,然后用0退出(否则如果应用程序确实失败)。您可以将启动参数添加到您的应用程序,以便它可以选择适合的策略。如“-outputToConsole”或“-OutputToFile ”等。 –

0

感谢您的澄清。 我修改了命令行执行来更新一个可以被其他应用程序读取的o/p值的文件