私はこの厄介な機能/バグを発見しました。次のような末尾のスペースを持つ文字列があると仮定します。テキストボックスとリッチテキストボックスの残りの文字を削除するヌル文字
スペースの量は異なる場合があります。そこで、開始タグと終了タグで囲まれたTextBox
に表示して、その変化の様子を見てみましょう。完全に動作します。
textBox1.Text = $"BEGIN#{value}#END";
しかし、この値は、このような終わり\0
ヌル文字を追加するのが好き私を送ってデバイス:
string value = "someValue " + Convert.ToChar(0x00);
と私は同じ方法でそれを表示しよう:
textBox1.Text = $"BEGIN#{value}#END;
この結果、#END
タグが消滅します。 同じ現象がRichTextBox
で発生します。
質問: はなぜヌル文字が文字列の残りの部分を食べる/殺すのか? 文字列のchar配列の終わりと解釈されるのは、CまたはC++のようですか?
これは、Windowsのコントロールが一般的にどのように動作するかを示します。はい、それはCやC++のようなものです。あなたのデバイスは明らかに、あなたが尊重しなければならない一般的に受け入れられたターミネータとして ''0 ''を置きます。 – GSerg
'value = value.TrimEnd( '\ 0')'? – spender
@GSerg私のデバイスは残念なことにバグとしてそれを置きます。だから私はちょうど調整し、それを削除するために世話をしていると思います。 –