2013-02-27 72 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);