Я пытаюсь заставить программу отвечать на определенные слова, отправленные микроконтроллером, но когда я сравниваю полученное слово с заранее определенным словом, он всегда возвращает false.C# Сравнение двух строк всегда возвращает false
private void ReadData()
{
if (serialPort1.IsOpen == true)
{
if (serialPort1.BytesToRead > 0)
{
string readBuffer = serialPort1.ReadLine();
textBox2.Text = readBuffer;
if (readBuffer.Equals("A")) //MY MAIN PROBLEM
{
textBox2.Text += "YEP";
}
else
{
textBox2.Text += "NOPE";
}
}
}
}
В основном, когда микроконтроллер посылает букву «А», он читает и сохраняет его в readBuffer
строку, и даже печатает его в textbox(textBox2)
. Мой результат всегда есть ANOPE в textbox
(A - это то, что отправил микроконтроллер, и NOPE всегда там, потому что если не удалось). Я начал C# недавно и потерял несколько дней, пытаясь понять это, но я действительно не могу найти решение по-видимому простой проблемы.
Возможно, новая строка включена в строку 'readBuffer'? –
Вы отлаживаете это? Возможно, после строки 'A' в строке есть' \ n' или какой-либо другой байт. Вы выполнили 'ReadLine', поэтому может появиться новый символ строки, который не отображается в вашем текстовом поле. –
Может быть «A» в другой кодировке (кириллица?) – dasblinkenlight