2012-05-18 42 views
1

讓我知道如何在C#代碼中使用此「vbObjectError」: //這是我的VB代碼vbObjectError如何使用此一成C#代碼

Public Enum CryptoErrors 
    ErrorAquiringContext = vbObjectError + 1056 
    ErrorCreatingHash = vbObjectError + 1057 
    ErrorCreatingHashData = vbObjectError + 1058 
    ErrorDerivingKey = vbObjectError + 1059 
    ErrorEncryptingData = vbObjectError + 1060 
    ErrorDecryptingData = vbObjectError + 1061 
    ErrorInvalidHexString = vbObjectError + 1062 
    ErrorMissingParameter = vbObjectError + 1063 
    ErrorBadEncryptionType = vbObjectError + 1064 
End Enum 
+0

只是不。在C#中你拋出異常,你不使用錯誤代碼。 –

回答

2

你可以作爲字面翻譯是:

public enum CryptoErrors 
{ 
    ErrorAcquiringContext = Microsoft.VisualBasic.Constants.vbObjectError + 1056, 
    ... 
} 

在這種情況下,您需要引用Microsoft.VisualBasic.dll。

如果你不想承擔Microsoft.VisualBasic.dll中的依賴,你可以定義自己的C#改爲不變:

public const int VBObjectError = -2147221504; 

但我會問,爲什麼你需要它的C#應用程序。從vbObjectError偏移的常量通常對應於HRESULT,並用於VB Err.Raise語句中。

在C#中,您只會引發異常。

+0

如果有人在C#中編寫代碼以便在VB中使用,則需要這個常量。當然,如果有人這樣做,可能(1)已經有一個對Microsoft.VisualBasic.dll的引用和(2)已經知道這個問題的答案。 – phoog