Я делаю игру, в которой я получаю входные данные от последовательного порта (Arduino). Поскольку ввод - это не просто число, а «е» + число, которое я пытаюсь получить в Visual Studio.
Это, однако, не так просто, как «вы». буду ожидать. Я использую простые операторы if, см. Мой код:
string RolledNumberCode = Program.form1.DicePort.ReadExisting();
if (RolledNumberCode.Contains("e"))
{
MessageBox.Show(RolledNumberCode);
int RolledNumber = 0;
if (RolledNumberCode.Contains("1")) { RolledNumber = 1; }
else if (RolledNumberCode.Contains("2")) { RolledNumber = 2; }
else if (RolledNumberCode.Contains("3")) { RolledNumber = 3; }
else if (RolledNumberCode.Contains("4")) { RolledNumber = 4; }
else if (RolledNumberCode.Contains("5")) { RolledNumber = 5; }
else if (RolledNumberCode.Contains("6")) { RolledNumber = 6; }
dice.RollAnalog(RolledNumber);
После того, как это не сработало, я протестировал его с ящиками сообщений, и c# правильно прочитал RolledNumberCode, например, всплывающее окно сообщений показывая е4. Но затем я помещаю RolledNumber в MessageBox, он всегда равен 0.
Кто-нибудь знает, что я здесь не так делаю? Я твердо думаю, что в моем коде есть простая ошибка, но я не могу ее найти: (