我有一个c#程序,我试图用一个特定的字符串调用一个messageBox(正常的字符串,没什么特别的),当到达一个变量与字符串连接时,它显然会停止连接。 代码:
string first = userInfo.info.getFirst(); //Some function
string last = userInfo.info.getLast(); // Some function
string message = first + "_" + last + " !";
MessageBox.Show(message);
// Output will be "(first value)";
我确实尝试调试,“first”和“last”的值是正确和正确的。 我还分析了是否出现了CPU或内存峰值(使用VS的工具),但没有看到。
关于问题的任何想法? 非常感谢!
答案 0 :(得分:4)
如果Win32 GUI库在其中找到\0
字符(U + 0000,Unicode" null"),则终止字符串。例如,如果你有:
MessageBox.Show("First part\0Second part");
然后才会显示First part
。
这里至少有两个选项:
Stream
或TextReader
API的误用,而不是注意Read
调用返回了多少字节或字符message = message.Replace("\0", "");
第一个选项更可取 - 如果我 无法获得干净的数据,我只会诉诸第二个选项。