为什么我一直得到:不能隐式转换类型字符串到类型bool?

时间:2013-01-20 17:23:39

标签: c#

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

2 个答案:

答案 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();