2012-12-18 30 views
1

我正在做一個小型的迷宮遊戲,如果玩家獲勝,我會卡在一個小問題上我有一個MessageBox彈出,並給他們一個祝詞,並顯示他們花了多長時間使用計時器,我計算了如何當他們玩這個遊戲時,他們一直在玩。我對消息框的代碼是:在Visual Studio 2010中使用MessageBox如何顯示消息,計時器int和其他消息?

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

gameElapsed是我的計時器的整數。它顯示文本沒有問題後的秒數,它只是後面的文字說「秒」是我遇到的麻煩。

所以我想在MessageBox說「恭喜你已經打敗迷宮你花:!X秒」

X是gameElapsed,定時器INT。

我希望我已經解釋清楚了我的問題,提前感謝任何幫助。

+0

對不起,請您說明您準備做什麼? :) –

+0

所以'gameElapsed'是一個'int',包含了它所花費的秒數? – Trisped

回答

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

會打印出:

恭喜!你已經打敗了迷宮!你花:4秒

2

你有沒有嘗試過這樣的:

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

我覺得string.Format更好:

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

使用 的+操作上非文本字符串導致連接來在運行時執行。
要在運行時連接 幾個字符串,請避免使用+運算符,因爲它會在垃圾回收堆上創建多個 字符串對象。
而是使用System.Text.StringBuilder類型或使用string.Format方法。 (string.Format使用System.Text.StringBuilder內部。)

因此,我建議:

  • 使用string.Format字符串量小,或者我們需要可讀性高的水平。
  • 對於大量字符串使用System.Text.StringBuilder
  • 對文字字符串使用+,C#編譯器在編譯時將它們連接起來,最終只放置一個字符串。
+0

爲什麼它更好? – regulatethis

+0

@regulatethis我已經更新了我的答案。希望它對你有意義。 –