2010-10-28 100 views
1

我從來沒有控制檯程序,從而陷入了這種無聊的事情:到Console.ReadLine()的ToString()生成錯誤

Console.Write("Enter customer's salary: "); 
string sal = Console.Write("{0}! ", Console.ReadLine().ToString()); 

它產生錯誤:無法隱式轉換類型「無效」到「字符串」

回答

10

Console.Write是一個無效的方法,它不會返回它寫入控制檯的內容。
你真正需要的是string.Format

string sal = string.Format("{0}! ", Console.ReadLine()); 

而且,在年底額外ToString()是多餘的(如在評論中指出的),原因有二:

  1. Console.ReadLine已經返回一個字符串
  2. 字符串格式化函數接受對象作爲參數,如果需要它們會自動轉換爲字符串。
+0

什麼是額外的ToString的結尾? ReadLine()已經返回一個字符串。 – JohnFx 2010-10-28 15:16:23

+0

@John:其實這是一些研究的剩餘。最初'sal'是小數。我不遵循爲什麼我們需要使用string.Format。是否有更簡單的方法直接獲取Decimal值?但我不想用這些'轉換'的東西。 – RKh 2010-10-28 15:51:31

+0

@RPK - 抱歉,那是針對Paolo,而不是你。無論數據是字母還是數字,數據都將以字符串形式讀入。所以你不需要在ReadLine的末尾追加ToString。看起來他已經糾正了,所以你應該很好。 – JohnFx 2010-10-28 15:54:12