2014-03-12 56 views
0

我切換到C#並希望在一行中使用Console.Writeline()函數在一行中編寫兩個變量值。如何使用C#編寫兩個字符串及其兩個變量值Console.Writeline()#

在C++中我可以做這樣的:

cout<<"symbol : "<<symbol<<"frequency : "<<frequency<<endl; 

,它將打印:

symbol : a frequency : 10 

我想在C#中的事,但它只是只打印第一個變量,我這樣做:

Console.WriteLine("Symbol : " +parentNode.symbol ,"frequency is : " + code); 

剛剛只打印symbol : 10做非p漂亮頻率

我試圖給兩個Console.WriteLine(),但改變了這兩行。

任何幫助如何實現?

+0

更改爲+ – cup

+0

對不起?我無法理解? – Sss

+1

你在'parentNode.symbol'後面使用'''而不是'+'。它能解決你的問題嗎?順便說一句,如果你想這樣做在同一行,你可以用'Console.Write()'爲您的'strings'的,它不會改變線路。 – Hyarantar

回答

8

我想你想實現可以這樣做:

Console.WriteLine("Symbol : " + parentNode.symbol + " frequency is : " + code); 

Console.WriteLine(string)

但更好的方法是使用下面的過載Console.WriteLine(string, params object[])

Console.WriteLine("Symbol : {0} frequency is : {1}", parentNode.symbol, code); 

而從C#6開始,您可以使用字符串插值(注意字符串前的$):

Console.WriteLine($"Symbol : {parentNode.symbol} frequency is : {code}"); 

的問題是,你的代碼使用的Console.WriteLine第二超載,但你的代碼是不是在某種程度上,這種方法可以把它理解寫的。

欲瞭解更多信息,請參閱Console.WriteLine方法MSDN文檔:

+0

錯誤CS0117:'System.Console「不包含'的WriteLine定義」我的回答 /usr/lib/mono/2.0/mscorlib.dll(符號的位置與前一個錯誤) – Sss

+0

阿輕微錯誤外殼 - 只是爲了保持你的腳趾:P現在糾正。 –

+0

你做了什麼改變?我還不能確定? – Sss

2

您的逗號的位置出現語法錯誤。我的猜測是你的意思是把它放在字符串中,以分隔「符號」和「頻率」。然後,您需要額外的+符號來連接字符串。


試試這個。您可以在字符串中指定佔位符,然後指定隨後就會替換它們的參數:

Console.WriteLine("Symbol : {0}, frequency is : {1}", parentNode.symbol, code); 

這是一個比較容易跟最終輸出將是什麼樣子了。

1

一對夫婦的方式。首先,你可以使用.Write()代替.WriteLine()以便不包括回車:

Console.Write("Symbol : " + parentNode.symbol); 
Console.WriteLine("frequency is : " + code); 

或者,也許你可以在連接字符串一起在一個電話:

Console.WriteLine("Symbol : " + parentNode.symbol + " frequency is : " + code); 

原因您嘗試不起作用是因爲Console.WriteLine()的過載接受格式字符串和任何數量的可以轉換爲字符串並放入格式字符串中的對象。然而,你的第一個參數是一個沒有格式化佔位符的字符串,所以第二個參數基本上被忽略了。

您可以使用格式字符串像這樣的東西,它通常優於上述選項:

Console.WriteLine("Symbol : {0} frequency is : {1}", parentNode.symbol, code); 

在這種情況下,方法調用有三個參數,其中第一個是格式字符串(帶佔位符),接下來的兩個對象可以轉換爲字符串放入佔位符中。

2

你缺少一個"+"

Console.WriteLine("Symbol : " +parentNode.symbol + "frequency is : " + code); 
                ^^^ 
1

你應該寫

Console.WriteLine("Symbol : " + parentNode.symbol + "frequency is : " + code); 

,而不是

Console.WriteLine("Symbol : " +parentNode.symbol ,"frequency is : " + code); 

WriteLine()預計在第一個參數的格式或格式和參數串。

另一種方式來完成這件事會

Console.WriteLine("Symbol : {0} frequency is {1}", parentNode.symbol, code); 

由另一個答案指出。

相關問題