印刷班级成员

时间:2018-05-13 17:18:25

标签: c# class printing

所以我正在制作多人扫雷。我到底想要打印每个球员的得分。对于玩家我有这样的课程:

public class Player
{
    public string name;
    public int score;
}

对于连接的每个客户端,我运行一个新线程:

clientThreads[i] = new Thread(new ParameterizedThreadStart(HandleClient));

然后在HandleClient方法的最后我有这个:

foreach(Player p in players)
{ 
    this.BeginInvoke((Action)(() =>
    {
        label8.Text += p.name + ":" + p.score.ToString();
    }));
}

我也尝试使用MessageBox,如果它改变了什么,但问题是我确实得到一个玩家的名字,就像它打印出来但得分不打印,甚至“:”没有打印。我放置了一个断点,p.score确实有一个值,所以它不像它的null或其他东西。编辑时,如果没有显示任何错误,我也不会收到任何错误。可能奇怪的是,即使我删除ToString()仍然没有错误,即使我将文本添加到label.text,它应该都是字符串。我从未遇到过这样的问题,我不知道为什么会这样。

我还从断点添加了图片。阅读“tocke”作为分数。 enter image description here

编辑:解决了!问题是这个名字有太多“\ 0”

1 个答案:

答案 0 :(得分:0)

\0是一个“空字符” - 一种C#中的字符串终结符。

你的name有很多跟踪,所以线的其余部分根本不适合。

您可以使用类似name.Trim()的内容来删除标签中的内容。