vbObjectError如何在c#代码中使用此选项
让我知道如何在c代码中使用此“vbObjectError”: //这是我的VB代码vbObjectError如何在c#代码中使用此选项,c#,vb.net,vb.net-to-c#,C#,Vb.net,Vb.net To C#,让我知道如何在c代码中使用此“vbObjectError”: //这是我的VB代码 Public Enum CryptoErrors ErrorAquiringContext = vbObjectError + 1056 ErrorCreatingHash = vbObjectError + 1057 ErrorCreatingHashData = vbObjectError + 1058 ErrorDerivingKey = vbObjectError + 10
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
您可以将其逐字翻译为:
public enum CryptoErrors
{
ErrorAcquiringContext = Microsoft.VisualBasic.Constants.vbObjectError + 1056,
...
}
在这种情况下,您需要对Microsoft.VisualBasic.dll的引用
如果不想依赖Microsoft.VisualBasic.dll,可以定义自己的C#常量:
public const int VBObjectError = -2147221504;
但我想问,为什么在C#应用程序中需要它。从vbObjectError
偏移的常数通常对应于HRESULT,并在VBErr.Raise
语句中使用
在C#中,您只需抛出一个异常。不要这样做。在C#中抛出异常,不使用错误代码。如果要在VB中使用C#编写代码,则需要此常量。当然,如果这样做,可能(1)已经有了对Microsoft.VisualBasic.dll的引用,(2)已经知道问题的答案。