VB.net으로 작성된 코드가 있으며 일부 사이트를 통해 C#으로 변환되었습니다. 코드가 복잡하지 않으므로 번역의 대부분은 아무런 문제없이 잘되었습니다. 하나의 문제는 실제로 두통을 유발하고 많은 웹 사이트 (이 웹 사이트를 포함하여)에서 참조되는 동안 나는 계속 실행할 수 없습니다. 로 변경바이트에서 문자열로 변환 할 수 없습니다. (VB.Net에서 C#으로)
Public Shared Function UTF8HexToByte(ByVal str As String) As Byte
와 번역자 : 나는대로 VB.Net에서 함수가 decalred이 내 C# 코드에서, 나중에
public static byte UTF8HexToByte(string str)
,이 함수를 호출하고 있습니다 :
for (int i = 0; i <= Key1.Length - 1; i++)
{
Key1[i] = 16 * UTF8HexToByte(TempKey1[2 * i]) + UTF8HexToByte(TempKey1[2 * i + 1]);
}
하지만 VB.net에서 작동하는 것은 여기서 작동하지 않습니다. 이 오류 받고 있어요 : 'maker.Resources.makeC.UTF8HexToByte (문자열)'에 가장 적합한 오버로드 된 메서드 일치하는 일부 잘못된 인수가 7
오류를
오류 8 인수 1 : '바이트'에서 변환 할 수 없습니다 to 'string'
이제 문제는 UTF8HexToByte
이 문자열을 수신하고 바이트를 반환한다는 것입니다. 반면에 문자열은 TempKey1
이고 문자열이 아닙니다. 는 그러나이 VB.Net 코드에서 작업을 수행, 그래서 혼란 스러워요 ... 여기 VB.Net의 코드입니다 :
For i As Integer = 0 To Key1.Length - 1
Key1(i) = 16 * UTF8HexToByte(TempKey1(2 * i)) + UTF8HexToByte(TempKey1(2 * i + 1))
Next
TempKey는 바이트 [] 키 1 바이트 []입니다.
도움이 될 것입니다. 나는이 하나에 정말로 붙어있다.
'char (TempKey1)'이 작동합니까? 그렇지 않으면 오류가 있는지 확인하십시오. 'Key1'이 바이트라면, 당신이 말하는 것처럼, 나는'Key1.Length'에 에러를 예상 할 것입니다. 아니면 "바이트 배열"을 의미합니까? –
http://msdn.microsoft.com/en-us/library/system.runtime.remoting.metadata.w3cxsd2001.soaphexbinary(v=vs.110).aspx –
바이트를 문자열로 명시 적으로 변환 해보십시오. 즉 UTF8HexToByte (TempKey1 [2 * i] .ToString()) – clausc