C#消息框,变量用法

问题描述 投票:0回答:7

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

我试图让消息框显示一条消息并同时读取一个变量。我在控制台应用程序中执行此操作没有问题,但在 Windows 端我无法弄清楚。

到目前为止我已经:

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

效果很好。然而,我试图让 {0} 成为变量 numGuesses 的结果。我确信这很简单,我只是在书本或其他东西中忽略了它,或者我在某个地方的语法不正确。

c# variables messagebox
7个回答
15
投票

尝试

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


4
投票

您可以使用

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


1
投票

String.Format()怎么样?

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

1
投票

String.Format就是你想要的:

string message = string.Format("You are right, it only took you {0} guesses!!!",numGuesses)

MessageBox.Show(message, "Results", MessageBoxButtons.OK);

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

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

基本上任何字符串变量都可以这样使用。不确定返回字符串的函数,但我不明白为什么不返回字符串。


0
投票

我倾向于这样做 - 它允许灵活的参数并且非常紧凑:

private void MsgBox(string msg, params object[] args)
{
    MessageBox.Show(String.Format(msg, args));
}

string routine = "TimerHandler";
int errorcode = 1234;

MsgBox("Error {0} in function {1}.", errorcode, routine);
© www.soinside.com 2019 - 2024. All rights reserved.