2015-11-04 56 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值的文件