Cuestión : 10 líneas de C# a la supervisión de la traducción de VB.NET

Hola, necesidad del

I necesitaron a un experto supervisar la traducción de algunas líneas de código, de C# al uso VB.NET 2008 y yo de VB.NET
I un StringToHex y un HexToString que apoyan los carácteres de Unicode, en VB.NET. Encontré la muestra de esas dos funciones en C#, y he adaptado este código para los trabajos adaptados/>The del código de VB.NET.


Although, he hecho código para eliminar este carácter, quisiera tener funciones limpias de StringToHex y de HexToString en VB.NET.

So, estoy interesado saber dónde he hecho exactamente la adaptación inexacta del código de C# al código de VB.NET, y fijar el código, porque tener funciones limpias sin confundido el código de Unicode character.

The C# que encontré está en esta página: el rel= " nofollow " del” _blank” del target= de " http://www.eggheadcafe.com/sample-code/csharp.NET/5c5e050f-7509-4ed5-aa58-6fd01ff2b3c6/c-net.aspx” del href= del
adaptación del /sample-code/csharp.NET/5c5e050f-7509-4ed5-aa58-6fd01ff2b3c6/c-net.aspx

The VB.NET de http://www.eggheadcafe.com del código de C# es éste:
----------------------------------------------------------------------------------------------------------la función compartida público ConvertStringToHex (ByVal del -
entrado como codificación de la secuencia, de ByVal como System.Text.Encoding) como String
amortigua stringBytes () como octeto = sbBytes déviles del
de encoding.GetBytes (entrada) como StringBuilder = nuevo StringBuilder (stringBytes.Length * 2)

b dévil como Byte
para cada b en el stringBytes
sbBytes.AppendFormat (” {0: X2} “, el público de vuelta de Function

del final del
del b)
Next

sbBytes.ToString () compartió la función ConvertHexToString (hexInput de ByVal como codificación de la secuencia, de ByVal como System.Text.Encoding) como String
amortigua numberChars como número entero = octetos déviles de hexInput.Length
() como octeto = nuevo octeto (numberChars/2) {} el
i dévil como Integer
para i = 0 a los numberChars - 1 los octetos del paso 2
(i/2) = Convert.ToByte el
Next

(de hexInput.Substring (i, 2), 16) amortiguan el

de ReturnValue = de encoding.GetString (octetos) si (AscW (ReturnValue.Substring (ReturnValue. Length - 1, 1)) = 65533) Then
ReturnValue = ReturnValue.Substring (0, ReturnValue.Length - extremo de vuelta Function
de If

ReturnValue
del final de 1)
----------------------------------------------------------------------------------------------------------la documentación del -

The para este carácter indeseado de Unicode está en esta página: rel= " nofollow " del” _blank” del target= de " http://www.fileformat.info/info/unicode/char/fffd/index.htm” del href= del
/info/unicode/char/fffd/index.htm


Thank de http://www.fileformat.info usted mucho por adelantado.
class= del

Respuesta : 10 líneas de C# a la supervisión de la traducción de VB.NET

No hay *really* al carácter adicional. En ConvertHexToString, cuando usted creó el arsenal “octetos”, usted dijo que el índice más supremo del arsenal debe ser los “numberChars/2”, que en esta prueba sale a 14. Observar que es esto, como dije, el índice más supremo, NO el número de ranuras en el arsenal. Esto significa que la llamada a encoding.GetString () está intentando convertir una ranura uninitialized del arsenal en un carácter. Usted necesita reducir el número de ranuras en el arsenal substituyendo la línea 31 de su poste pasado por:
1:
Octetos déviles () como octeto = nuevo octeto ((numberChars/2) - 1) {}
Otras soluciones  
 
programming4us programming4us