我是C#的新手,我无法弄清楚这段代码有什么问题。我正在创建一个测验,如果答案是正确的,我试图说得好,但它一直在提出,不能隐式地将类型字符串转换为bool类型。
这是我的代码:
{
int score = 0;
Console.WriteLine(" What is your name?");
string name = "";
name = Console.ReadLine();
Console.WriteLine("Hello " +name+ " and welcome to the Formula 1 quiz.");
Console.ReadLine();
Console.WriteLine("Question 1: How many races has Michael Schumacher won.");
Console.ReadLine();
Console.WriteLine("a) 91");
Console.WriteLine("b) 51");
Console.WriteLine("c) 41");
Console.WriteLine("d) 31");
Console.ReadLine();
string answer = Console.ReadLine();
if (answer = a) Console.WriteLine("Well done");
else Console.WriteLine("Wrong answer");
}
答案 0 :(得分:6)
更改:
if (answer = a)
到
if (answer == "a")
答案 1 :(得分:2)
您在=
声明中使用了赋值运算符(if
):
if (answer = a)
从它的外观来看,您想要将它们输入的内容与a
字符串进行比较,因此您需要先使用比较运算符(==
),然后将其与a进行比较字符串:
if (answer == "a")
Console.WriteLine("Well done");
else
Console.WriteLine("Wrong answer");
Visual Studio(或您正在使用的任何IDE)应该真正理解这一点,因为a
未声明(或bool
)。
在一个不相关的注释中,由于上面已经回答了,你可以在这里改变你的变量声明和赋值,因为不需要将声明和赋值分开。
string name = "";
name = Console.ReadLine();
为:
string name = Console.ReadLine();