C#消息框,可变用法

时间:2011-08-20 22:16:29

标签: c# variables messagebox

我已经搜索过,但我不知道我是否正在使用正确的措辞进行搜索。我正在用C#为我的班级写一个程序,但是我遇到了消息框的问题。

我正在尝试让消息框显示消息并同时读取变量。我在控制台应用程序中执行此操作没有问题,但我无法解决Windows方面的问题。

到目前为止,我有:

MessageBox.Show("You are right, it only took you {0} guesses!!!", "Results", MessageBoxButtons.OK);

哪个工作正常。 Howerver我试图让{0}成为变量numGuesses的结果。我确信这很简单,我只是在书中忽略了它,或者我的语法不正确。

6 个答案:

答案 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);
}

基本上任何字符串变量都可以这种方式使用。虽然我不知道为什么不知道返回字符串的函数。