Я столкнулся с этим раздражающим признаком/ошибкой. Предположим, у меня есть строка с завершающими пробелами вроде:Нулевой символ, удаляющий остальную часть вывода в TextBox и RichTextBox
string value = "someValue ";
Количество мест может варьироваться. Поэтому я пытаюсь показать его в TextBox
, заключенном в начало и конец тегов, чтобы узнать, как он меняется, и он отлично работает.
textBox1.Text = $"BEGIN#{value}#END";
Но устройство, отправить мне это значение любит, чтобы добавить \0
нулевой символ в конце, как это:
string value = "someValue " + Convert.ToChar(0x00);
и когда я пытаюсь отобразить его с тем же самым способом:
textBox1.Text = $"BEGIN#{value}#END;
Это приводит к исчезновению тега #END
. Такое же явление происходит в RichTextBox
.
Вопрос: Почему нулевой символ убивает/съедает оставшуюся часть строки? Как на C или C++ интерпретируется как конец массива char в строке?
Вот как обычно управляют элементы управления Windows. Да, это похоже на C или C++, и ваше устройство, по-видимому, ставит «0» в качестве общепринятого терминатора, который вы также должны уважать. – GSerg
'value = value.TrimEnd ('\ 0')'? – spender
@GSerg Нет моего устройства, к сожалению, это ошибка. Поэтому, я думаю, мне нужно только настроить и позаботиться о его удалении. –