C# kann Nicht implizit konvertiert type 'string' to 'bool' Fehler
Ich bin neu in C# bin ich mit microsoft Visual Studio Express 2013 Windows Desktop edition und ich habe versucht zu machen, ein quiz, in dem ich die Frage stellen und der user hat es zu beantworten so, hier ist der code und die Fehlermeldung die ich bekomme ist
"Kann nicht implizit konvertiert type 'string' to 'bool'" und das passiert auf der 2, wenn Aussagen, die ich verstehe, dass ein boolescher Wert, der hat entweder den Wert true oder false, aber es ist ein string, also warum ist es mir dieser Fehler? Jede Hilfe sollte geschätzt werden.
PS: ich habe nur den Teil des Codes, in dem ich bin mit dem problem und das ist der einzige code in der main-Klasse
Hier ist der code:
Start:
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Question 1: Test? type yes or no: ");
String answer1 = Console.ReadLine();
if (answer1 = "yes") {
Console.WriteLine();
Console.WriteLine("Question 2: Test? type Yes or no");
}
else if (answer1 = "no")
{
Console.WriteLine();
Console.WriteLine("Wrong, restarting program");
goto Start;
}
else {
Console.WriteLine();
Console.WriteLine("Error");
goto Start;
}
- geben Sie
==
nicht=
=
weist,==
vergleicht- möglich, Duplikat der Hilfe bei der Umwandlung geben - kann nicht implizit konvertiert type 'string' to 'bool'
- ich finde es nicht gut die Antwort auf eine doppelte Frage. oder zumindest eine Antwort ist genug
- Bitte verwenden Sie nicht
goto
Aussagen wie Terrance erwähnt unten. Sie sind schädlich für die Umwelt und für die kleinen Tiere fury
Du musst angemeldet sein, um einen Kommentar abzugeben.
in allen if-Anweisungen
sollte
in c#
=
ist einen Wert zuweisen,==
ist für den Vergleich. Es ändern alle Ihre if-Anweisungen und du wirst in Ordnung seinBitte haben Sie einen Blick auf diese Zeile:
Diese weisen mit "ja" answer1 ersten und dann ist es wie
So, jetzt wird dies versuchen zu konvertieren answer1 einen string in einen booleschen Wert, der die if-Anweisung erfordert. Das funktioniert nicht und wirft die Ausnahme.
Haben Sie zu tun, ein Vergleich wie dieser:
oder nutzen Sie gleich wie diese:
und dann das gleiche tun für die anderen, wenn.
Der unmittelbare Grund ist, dass
=
weist, nicht vergleicht Werte als==
tut.So können Sie tun,
Allerdings würde ich es vorziehen,
falls der Anwender wählt
"Yes"
oder"YES"
etc. als Antwortdiese
=
ist der Zuweisungsoperator in C#diese
==
ist ein Vergleichsoperator in C#für eine vollständige Liste der Operatoren in C# überprüfen diese aus. Als asside ich würde generell empfehlen gegen die Verwendung goto-Anweisungen
Alle, dass gesagt wird Ihr code sollte in etwa so Aussehen.