1

我正在制作一个小型迷宫游戏,但我遇到了一个小问题,如果玩家获胜,我会弹出一个 MessageBox 并给他们一条祝贺消息,并显示他们使用计时器花了多长时间,我已经计算了他们多长时间'正在采取的游戏进行。我的消息框代码是:

MessageBox.Show("Congratulations! You've beaten the maze! It took you: "+gameElapsed); 

gameElapsed 是我的计时器的整数。它显示文本后的秒数没问题,之后只是收到文本说“秒”是我遇到的问题。

所以我想让 MessageBox 说“恭喜!你已经打败了迷宫!花了你:X 秒”

X 是 gameElapsed,计时器 int。

我希望我已经足够清楚地解释了我的问题,在此先感谢您的帮助。

4

3 回答 3

3

我认为string.Format更好:

MessageBox.Show(string.Format("Congratulations! You've beaten the maze! It took you: {0} seconds", gameElapsed));

对非文字字符串使用+运算符会导致在运行时执行连接。
要在运行时将多个字符串连接在一起,请避免使用+运算符,因为它会在垃圾收集堆上创建多个字符串对象。
而是使用System.Text.StringBuildertype 或 usestring.Format方法。(内部string.Format使用System.Text.StringBuilder。)

因此,我建议:

  • 用于string.Format少量字符串,或者我们需要高水平的可读性。
  • 用于System.Text.StringBuilder大量字符串。
  • 对于文字字符串,C# 编译器+在编译时将它们连接起来,最后只放置一个字符串。
于 2012-12-18T04:49:43.180 回答
2

你试过这个:

MessageBox.Show("Congratulations! You've beaten the maze! It took you: "+ gameElapsed + " Seconds");
于 2012-12-18T04:19:05.663 回答
1
MessageBox.Show("Congratulations! You've beaten the maze! It took you: "+gameElapsed.ToString() + " seconds"); 

将打印出:

恭喜!你打败了迷宫!你花了:4秒

于 2012-12-18T04:18:27.480 回答