2017-09-24 115 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; 
相关问题