Diese Frage könnte ein bisschen pingelig sein, aber ich muss das wirklich verstehen.Compiler Fehler CS0201
Ich habe folgende Code:
string.Equals("0", "1"); //returns false, does compile
und
int i = 1;
i == 0; //should return false, does not compile
Der zweite Teil der Ausnahme,
Nur Zuordnung führt, rufen, Erhöhung, Senkung und neue Objekt Ausdrücke kann als eine Aussage verwendet werden
Als documented zumindest eine Zuordnung (=
), Methodenaufruf ()
, new
, --
oder ++
Betrieb aufgerufen werden muss.
Frage: Heißt das, ==
ist keine Methode?
Sie können keinen Vergleich 'i == 0;' als einzelne Anweisung verwenden. Das gleiche würde passieren, wenn Sie versuchen würden, eine Variable als einzige Anweisung eines if-Blocks zu deklarieren, z. 'if (true) {int i = 0}' –
== ist in der Tat keine Methode, es ist ein Operator – nbokmans
'==' ist ein * Operator *. Es kann durch eine Methode für benutzerdefinierte Typen * unterstützt * werden, aber der Compiler ist frei, spezialisierten Code zu kompilieren, wenn es Typen gibt, von denen er weiß, dass sie involviert sind. –