Traduire le type Byte* en vb.NET ?
Bonjour à tous, je sais que ma demande risque de ne pas être bien percu puisqu'il s'agit de traduire un code qui n'est pas de moi mais c'est une partie importante qui va déterminer la suite que je peux donner à mon programme sans autre solution que celle-çi.
Je bute en fait sur cet unique problème :
Que signifie cette astérisque après le type byte et comment traduire ca en vb.NET ? La traduction que je donne ci-dessous en vb.NET est approximative (converti par le site Telerik) et demande à être retouché pour coller au code C#.
Vous me seriez vraiment d'un grand secours si vous pouviez m'aider la dessus.
Code C# :
Code:
1 2 3 4 5 6 7 8 9
| [MethodImpl(MethodImplOptions.AggressiveInlining)]
protected static unsafe int ToInt32(byte[] value, int startIndex) {
fixed (byte* pbyte = &value[startIndex]) {
if (startIndex % 4 == 0) return *(int*)pbyte;
return BitConverter.IsLittleEndian
? *pbyte | (*(pbyte + 1) << 8) | (*(pbyte + 2) << 16) | (*(pbyte + 3) << 24)
: (*pbyte << 24) | (*(pbyte + 1) << 16) | (*(pbyte + 2) << 8) | *(pbyte + 3);
}
} |
Code vb.NET :
Code:
1 2 3 4 5 6 7 8 9
| <MethodImpl(MethodImplOptions.AggressiveInlining)>
Protected Shared Function ToInt32(value As Byte(), startIndex As Integer) As Integer
Dim pByte As Byte = value(startIndex)
If startIndex Mod 4 = 0 Then
Return CType(pbyte, Pointer(Of Integer)).Target
End If
Return If(BitConverter.IsLittleEndian, pbyte.Target Or ((pbyte + 1).Target << 8) Or ((pbyte + 2).Target << 16) Or ((pbyte + 3).Target << 24), (pbyte.Target << 24) Or ((pbyte + 1).Target << 16) Or ((pbyte + 2).Target << 8) Or (pbyte + 3).Target)
End Function |
En vous remerciant par avance.