如何将此段代码转换为vb.net

isage2002 2017-08-08 09:02:38
private static unsafe uint test(void* pVoid0, uint uint0)
{
if (BitConverter.IsLittleEndian)
{
return *(((uint*) pVoid0));
}
byte* numPtr = (byte*) pVoid0;
switch (uint0)
{
case 1:
return numPtr[0];

case 2:
return (uint) (numPtr[0] | (numPtr[1] << 8));

case 3:
return (uint) ((numPtr[0] | (numPtr[1] << 8)) | (numPtr[2] << 0x10));

case 4:
return (uint) (((numPtr[0] | (numPtr[1] << 8)) | (numPtr[2] << 0x10)) | (numPtr[3] << 0x18));
}
return 0;
}
因对于指针不是很了解,此段代码该如何转换
...全文
221 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2017-08-10
  • 打赏
  • 举报
回复
供参考: Private Shared Function test(pVoid0 As Pointer(Of System.Void), uint0 As UInteger) As UInteger If BitConverter.IsLittleEndian Then Return CType(pVoid0, Pointer(Of UInteger)).Target End If Dim numPtr As Pointer(Of Byte) = CType(pVoid0, Pointer(Of Byte)) Select Case uint0 Case 1 Return numPtr(0) Case 2 Return CUInt(numPtr(0) Or (numPtr(1) << 8)) Case 3 Return CUInt((numPtr(0) Or (numPtr(1) << 8)) Or (numPtr(2) << &H10)) Case 4 Return CUInt(((numPtr(0) Or (numPtr(1) << 8)) Or (numPtr(2) << &H10)) Or (numPtr(3) << &H18)) End Select Return 0 End Function
isage2002 2017-08-10
  • 打赏
  • 举报
回复
楼上的是机器转码,报错
isage2002 2017-08-09
  • 打赏
  • 举报
回复
有偿回答,可私聊,q77080862

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧