OriginalGriff
:вздыхать:
Ты меня не слушаешь, да? Когда вы задали этот вопрос: Не удается неявно преобразовать тип 'int' в 'bool'[^] Я сказал::
Цитата:
Когда вы находите код в интернете на одном языке и пытаетесь использовать его на другом, вы должны понимать три вещи:
1) исходный язык - в данном случае C или C++
2) Язык назначения - в данном случае C#
3) Что делает код и как он это делает.
И это именно то, что я имел в виду.
Вы должны понимать оба языка; вы не можете просто сбросить код C в C# и ожидать, что он будет компилироваться! Хуже того, даже если вы заставите его скомпилироваться чисто, нет никакой гарантии, что он будет работать точно так же, как и исходный код.
несколько языков которые имеют некоторый общий синтаксис.
Так что думайте о том, что происходит, а не просто слепо пытаться заставить других перевести это для вас...
В этом случае вы пытаетесь поместить целочисленное значение в байтовую переменную, и C# не позволит вам "просто сделать это", потому что операция "выбрасывает" информацию, и он хочет быть уверен, что вы знаете, что это то, что вы делаете.
Изменить это:
MCUData[frame_length] = crc_register >> 8;
И все подобные коды к этому:
MCUData[frame_length] = (byte)(crc_register >> 8);
и это сообщение об ошибке исчезнет.
Вы все еще должны знать, что вы не можете ожидать, что код, даже когда он компилируется, будет работать точно так же, как оригинал, если вы не выполните все три вышеперечисленных условия!