为什么user = Console.ReadLine();
总是出错?
这里是错误:
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();
}
}
}
答案 0 :(得分:0)
Console.ReadLine()
返回string
而不是char
。如果您只想阅读单char
,则可以使用Console.ReadKey
。尝试使用以下内容替换出错的行:
user = Console.ReadKey().KeyChar;
答案 1 :(得分:-2)
C#'y'
中的单引号代表char
,而双引号"y"
代表string
。 Console.ReadLine()
返回一个字符串,因此它永远不会等于while
语句中的char。
更改为string user;
和while (user == "y")
此外,while必须紧跟do
循环。 (谢谢@Aren)