2017-09-24 532 views
-2

爲什麼user = Console.ReadLine();總是出錯?不能將類型'字符串'隱式轉換爲'char'

這裏的錯誤:

  • 不能鍵入 '串' 隱式轉換爲 '字符'
  • 語法錯誤, '(' 預計
  • 語法錯誤 '而' 預期
  • )預計
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace ConsoleApplication5 
{ 
    class Program 
{ 
    static void Main(string[] args) 
    { 
     char user; 
     do 
     { 
      Console.Clear(); 

      Console.WriteLine("Discount Code"); 
      Console.WriteLine("1. Student = 10%"); 
      Console.WriteLine("2. Senior = 15%"); 
      Console.WriteLine("3. Regular = 0%"); 

      Console.Write("Please input discount code: "); 
      int DiscountCode = int.Parse(Console.ReadLine()); 
      fare fares = new fare(); 
      fares.setDiscountCode(DiscountCode); 
      Console.WriteLine(); 
      Console.Write("Please input distance(KM):"); 
      double Distance = double.Parse(Console.ReadLine()); 
      fares.setDistance(Distance); 
      fares.getDistance(); 
      fares.totalFare(); 

     } 
     user = Console.ReadLine(); // error 
     while (user == 'y'); 

     Console.ReadKey(); 
    } 
} 
} 
+2

後'do'塊,你需要寫'while',你可以不寫任何其他之類的語句'用戶=到Console.ReadLine();'以及作爲Console.ReadLine()總是會返回字符串,如@ Tim的回答 –

回答

-2

C#中的單引號'y'代表char,而雙引號"y"代表stringConsole.ReadLine()返回一個字符串,所以它不會等於while語句中的字符。

更改爲string user;

while (user == "y")

此外,同時必須緊跟在do循環。 (Thanks @Aren)

+3

中所述,那麼'user'仍然是char類型而不是字符串。 – Marco

0

Console.ReadLine()返回string而不是char。如果您只想讀取單個char,則可以使用Console.ReadKey代替。嘗試更換線你在哪裏得到的錯誤下面:

user = Console.ReadKey().KeyChar; 
相關問題