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 vb.NET :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); } }
En vous remerciant par avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager