gpt4 book ai didi

c# - MessageBox 不显示所有给定的字符串

转载 作者:行者123 更新时间:2023-11-30 20:30:38 36 4
gpt4 key购买 nike

我有一个 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 的工具),但没有看到。

关于这个问题有什么想法吗?非常感谢!

最佳答案

如果 Win32 GUI 库在其中找到 \0 字符(U+0000,Unicode“null”),则它们会终止字符串。例如,如果您有:

MessageBox.Show("First part\0Second part");

然后只会显示第一部分

这里至少有两个选项:

  • 找出“坏”角色的来源。这通常是误用了 StreamTextReader API,没有注意 Read 调用返回了多少字节或字符
  • 只需删除“坏”字符,例如message = message.Replace("\0", "");

第一个选项更可取 - 如果我真的无法获得干净的数据,我只会求助于第二个。

关于c# - MessageBox 不显示所有给定的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44505646/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com