Я портирую C
программу на C#
В программе C у меня есть этот кусок кода
uint32_t *st = (uint32_t*)((uint8_t*)rawptr+4);
uint64_t *d = (uint64_t*)((uint8_t*)rawptr+8);
uint8_t err = st[0] >> 24;
uint8_t type = (st[0] >> 24) & 0x3;
uint32_t nybble = st[0] & 0x0ffffff;
Я пытался преобразовать его в c #
uint[] st = (uint)((byte)rawptr + 4);
ulong d = (ulong)((byte)rawptr + 8);
byte err = st[0] >> 24;
byte type = (st[0] >> 24) & 0x3;
uint nybble = st[0] & 0x0ffffff;
Но в этой ситуации я встречаю CS00029
ОШИБКУ (Cannot convert from uint to uint[]
)
Я также пытался изменить его на
uint st = (uint)((byte)rawptr + 4);
ulong d = (ulong)((byte)rawptr + 8);
byte err = st[0] >> 24;
byte type = (st[0] >> 24) & 0x3;
uint nybble = st[0] & 0x0ffffff;`
Но в этом случае ошибка CS00021 Cannot apply indexing with [] to an expression of type 'uint'
Не могли бы вы помочь мне решить эту проблему?
Большое спасибо!