2013-02-27 73 views
-3

我有一个问题,目前我并不真的需要它的应用程序,但我只是好奇。在MessageBox或WriteLine中创建字符串

有没有办法创建一个字符串并将其填充到WriteLine或Messagebox.Show的括号之间?

的代码应该再是这个样子,我认为:

MessageBox.Show(String s = string.Format("Hello World")); 

这是不正确的代码,我只问题是:是这样的事情可能吗?

+0

如果你解释这可能是更好的**为什么**和** **你希望什么来完成,而不是问一个可能,看似不协调的解决方案。 =) – 2013-02-27 08:37:43

+0

代码更紧凑 – Max 2013-02-27 08:38:52

+0

您应该为您的问题添加一个要求,因为所提供的示例没有意义,不会进行编译,也不会说明您要求的是什么。 – 2013-02-27 08:39:32

回答

7

你可以像这样在一个调用中声明一个字符串。但是,您可以分配它。

string s = string.Empty; 
MessageBox.Show(s = string.Format("Hello World")); 

如果你可以在函数调用中声明字符串,它不会在其他地方显示。所以它真的会在语言中具有这种功能。

+0

好的,谢谢,但没有办法在圆括号之间创建字符串? – Max 2013-02-27 08:38:19

+2

要注意:你没有在调用中声明字符串。你正在分配它。而且它只能工作,因为赋值的返回值是赋值变量。 – 2013-02-27 08:38:50

+0

@Evelie感谢您编辑帖子,您为什么不可能提供一个很好的论点。 – Max 2013-02-27 08:39:56

0

到Evelie的回答另一种是让你写这一切在一个行可以定义一个helper方法返回一个字符串:

public static string ShowMsg(string msg) { 
    MessageBox.Show(msg); 
    return msg; 
} 

而且你的代码将变成:

string s = ShowMsg("Hello World"); 

string s = ShowMsg(string.Format("Now is {0}.", DateTime.Now)); 

而且你也可以在你的助手方法中执行格式:

public static string ShowMsg(string format, params object[] args) { 
    string mgs = string.Format(format, args); 
    MessageBox.Show(msg); 
    return msg; 
} 

而且使用它作为:

string s = ShowMsg("Now is {0}.", DateTime.Now);