Я просто нашел интересную проблему между переводом некоторых данных:
VB.NET: CByte(4) << 8
Возвращает 4
Но С#: (byte)4 << 8
Возвращает 1024
А именно, почему VB.NET: (CByte(4) << 8).GetType()
возвращает тип {Name = "Byte" FullName = "System.Byte"}
Тем не менее С#: ((byte)4 << 8).GetType()
возвращает тип {Name = "Int32" FullName = "System.Int32"}
Есть ли причина, почему эти два рассматривают двоичный сдвиг одинаково? Следуя за этим, есть ли способ сделать смещение бит С# так же, как VB.NET(чтобы сделать VB.NET таким же, как С#, что вы просто делаете CInt(_____) << 8
)?