2017-09-24 6 views
-2

なぜuser = Console.ReadLine();にエラーが発生しましたか?ここ暗黙的に '文字列'を 'char'に変換できません

はエラーです:

  • が暗黙のうちに「シャア
  • 構文エラーにタイプ 'string' を変換できません、 '('
  • を期待 'しながら、'、
  • 構文エラーを期待しました)予想
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

を、あなたは 'ユーザー= Console.ReadLine()のような他の文を書くことはできません;'だけでなく'Console.ReadLine()'は@Timmeの回答 –

答えて

-2

C#'y'の一重引用符はcharを表し、二重引用符"y"stringを表します。 Console.ReadLine()は文字列を返すので、whileステートメントのcharと等しくなることはありません。

string user;

に変更し、while (user == "y")

また、しばらくはすぐにdoループに従わなければなりません。 (ありがとう@Aren)

+3

で述べたように常にstringを返すので、 'user'はchar型で文字列ではありません。 – Marco

0

Console.ReadLine()stringで、charではありません。単一のcharを読みたい場合は、代わりにConsole.ReadKeyを使用できます。あなたは以下とエラーが出るライン交換してみてください:あなたは `while`を記述する必要がdo`ブロック`後

user = Console.ReadKey().KeyChar; 
関連する問題