我已经搜索过,但我不知道我是否正在使用正确的措辞进行搜索。我正在用C#为我的班级写一个程序,但是我遇到了消息框的问题。
我正在尝试让消息框显示消息并同时读取变量。我在控制台应用程序中执行此操作没有问题,但我无法解决Windows方面的问题。
到目前为止,我有:
MessageBox.Show("You are right, it only took you {0} guesses!!!", "Results", MessageBoxButtons.OK);
哪个工作正常。 Howerver我试图让{0}成为变量numGuesses的结果。我确信这很简单,我只是在书中忽略了它,或者我的语法不正确。
答案 0 :(得分:11)
试
MessageBox.Show(string.Format ("You are right, it only took you {0} guesses!!!", numGuesses ), "Results", MessageBoxButtons.OK);
请参阅http://msdn.microsoft.com/en-us/library/system.string.format(v=VS.100).aspx
答案 1 :(得分:3)
您可以使用String.Format
或简单的字符串连接。
MessageBox.Show(String.Format("You are right, it only took you {0} guesses!!!", myVariable), "Results", MessageBoxButtons.OK);
http://msdn.microsoft.com/en-us/library/system.string.format(v=VS.100).aspx
级联:
MessageBox.Show("You are right, it only took you " + myVariable + " guesses!!!", "Results", MessageBoxButtons.OK);
两个结果都是等效的,但如果同一个字符串中有多个变量,则可能更喜欢String.Format
。
答案 2 :(得分:1)
String.Format()怎么办?
MessageBox.Show(String.Format("You are right, it only took you {0} guesses!!!", numGuesses), "Results", MessageBoxButtons.OK);
答案 3 :(得分:1)
String.Format就是你想要的:
string message = string.Format("You are right, it only took you {0} guesses!!!",numGuesses)
MessageBox.Show(message, "Results", MessageBoxButtons.OK);
答案 4 :(得分:1)
MessageBox.Show(
string.Format(
"You are right, it only took you {0} guesses!!!",
Results
),
MessageBoxButtons.OK
);
答案 5 :(得分:0)
您的课程做得很好,并且该线程很旧。话虽如此,今天您可以这样解决这个问题:
var firstName = "Sam";
MessageBox.Show($"My first name is { firstName }.", "First Name", MessageBoxButtons.Ok);
您也可以在catch块中使用它:
...
}
catch (Exception ex)
{
MessageBox.Show($"Program encountered an error \n\n{ ex.Message }", "Program Error", MessageBoxButtons.Ok);
}
基本上任何字符串变量都可以这种方式使用。虽然我不知道为什么不知道返回字符串的函数。