2017-09-24 7 views
-2

warum user = Console.ReadLine(); hat immer einen Fehler ??Kann den Typ 'string' nicht implizit in 'char' konvertieren

hier sind die Fehler:

  • nicht implizit Kann Typ 'string' auf 'char'
  • Syntaxfehler, '(' erwartet
  • Syntaxfehler 'während' erwartet
  • ) umwandeln erwartet
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

Nach 'do' Block, den Sie schreiben müssen' while', Sie alle anderen Aussagen nicht schreiben können wie 'user = Console.ReadLine();' als auch als 'Console.ReadLine()' wird immer String zurückgeben, wie in @ Tims Antwort –

Antwort

-2

Einfache Anführungszeichen in C# 'y' repräsentieren eine char, während doppelte Anführungszeichen "y" eine string darstellen. Console.ReadLine() gibt eine Zeichenfolge zurück, so dass sie niemals einem Zeichen in der while-Anweisung entspricht.

Wechsel zu string user;

und while (user == "y")

Außerdem muss der während sofort die do Schleife folgen. (Danke @Aren)

+3

erwähnt, dann ist 'user' immer noch vom Typ char und nicht string. – Marco

0

Console.ReadLine() gibt string zurück und nicht char. Wenn Sie nur einzelne char lesen möchten, können Sie stattdessen Console.ReadKey verwenden. Versuchen Linie zu ersetzen, wo Sie Fehler erhalten mit unter:

user = Console.ReadKey().KeyChar; 
Verwandte Themen