C# 为什么我总是得到:不能隐式地将类型字符串转换为类型bool?

C# 为什么我总是得到:不能隐式地将类型字符串转换为类型bool?,c#,C#,我是C#新手,我不知道这段代码出了什么问题。我正在创建一个测验,并试图说如果答案是正确的,做得很好,但它不断出现无法隐式地将类型字符串转换为类型bool 这是我的密码: { int score = 0; Console.WriteLine(" What is your name?"); string name = ""; name = Console.ReadLine(); Console.WriteLine("Hello " +name+ " and

我是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");
}
更改:

if (answer =  a)


您在这里的
if
语句中使用赋值运算符(
=
):

if (answer =  a)
从外观上看,您希望将他们输入的内容与
a
字符串进行比较,因此您需要首先使用比较运算符(
==
),并实际将其与字符串进行比较:

if (answer == "a")
    Console.WriteLine("Well done");
else
    Console.WriteLine("Wrong answer");
VisualStudio(或您正在使用的任何IDE)应该已经真正了解了这一点,因为
a
是未声明的(或
bool


在一个不相关的注释中,因为上面已经回答了,您可以在这里将变量声明和赋值更改为在同一行,因为不需要将声明和赋值分开

string name = "";
name = Console.ReadLine();
致:


当我输入a时,什么也没发生,你知道为什么会这样吗?但是谢谢!是的,您需要键入
a
然后按enter键,这就是
ReadLine()
的作用。您可能需要考虑使用<代码> RealKEY < /C> >,它将给您一个<代码> COSOLKEIKEFION/COD>对象,在这种情况下,更改< <代码> < <代码> > <代码> >(回答:KECHCHAR== 'A'){。我正在按enter键,但什么也没发生?是的,一旦程序执行完毕,框就会消失。要避免这种情况,可以添加另一个
控制台。ReadLine()在方法的末尾,当然,最好的方法是不要这样做,只需从<代码> CMD中执行程序。@ USSRe35358,你应该接受这个问题的答案,然后问另一个如果你需要另一个主题的帮助。这是相当基本的,并且不能保证另一个问题,你应该考虑阅读。关于C#basics。请注意,问答网站也是如此,而不是讨论论坛。您可以通过单击旁边的大复选标记将答案标记为已接受。
string name = "";
name = Console.ReadLine();
string name = Console.ReadLine();