Console.WriteLine是否有任何区别(" {0},var);和MessageBox.Show(" {0},var)

时间:2016-10-10 03:05:14

标签: c#

以下陈述中是否有任何错误?

var str = "Hello how are you.";
MessageBox.Show("{0}",str);

我的问题出现在以下代码中,我没有正确使用它。以下代码是学习过程的一部分。在MessageBox中,'指定'变量不会像我上面所说的那样来!我最初发布它是因为我的无知,当我测试一些东西时,我可以使用MessageBox,如Console.WriteLine()。

abstract class Employee //Abstract class
{
     public virtual void WhichCoEmployee()
     {
         MessageBox.Show("I am employed in XYZ Corporation as its {0}", designation); //My problem was in this line.
          //designation varaiable was not received in 
          //placeholder {0} for display in MessageBox.Show.
     }
     public void Designation(string desig)
     {
         designation = desig;
     }
     public string designation { get; set; }
}

class CEO : Employee //Inheritance
{
    public void Name()
    {
        MessageBox.Show("My name is Satheeshkumar K");
    }
}

 private void button2_Click(object sender, EventArgs e)
 {
     CEO ceo = new CEO(); //Initializing the CEO class.
     ceo.Name();
     ceo.Designation("CEO");   
     ceo.WhichCoEmployee();
 }

后来我通过更改了问题来纠正MessageBox.Show问题 消息框代码。

MessageBox.Show("I am employed in XYZ Corporation as its " + designation);

工作得很好。我对此没什么好说的。作为stackoverflow的成员,由于其他成员的帮助,我确实帮助我学习了一些东西。

1 个答案:

答案 0 :(得分:1)

编辑:

只需更改

MessageBox.Show("I am employed in XYZ Corporation as its {0}", designation);

MessageBox.Show("I am employed in XYZ Corporation as its " + designation);

顺便说一下,你需要在某个地方调用这个方法来运行代码!

没有。根据语法,您的两行似乎完全正确

但似乎你想要达到的目标与你所做的不同......事情就是这样:你刚刚调用Show MessageBox方法的重载版本public static DialogResult Show(string text, string caption); class,接受两个字符串。

Console.WriteLine("{0}", var);

因此,在您的情况下,一个带有" {0}"的消息框。文字和"你好,你好。"将显示标题。

然而,var完全不同。它用于将输出打印到控制台。它还有许多重载变量,在这种情况下,它将用2016-12-27 NaN 2016-12-28 NaN 2016-12-29 NaN 2016-12-30 NaN 2016-12-31 NaN Name: var_name, dtype: object 变量的值替换{0}。因此,"你好。你好。"将输出到控制台。