Eine Frage hier hat eine Frage für mich aufgeworfen:
Ternäre Operationen in c #, sagen wir x = y ? a : b
, verwenden den Typ von a
oder b
, um den Typ des ternären Ausdrucks zu bestimmen. Warum verwendet es nicht den Typ von x
? Gibt es in keiner Situation einen erwarteten Rückgabetyp, den er verwenden kann?
EDIT: Aus Gründen der Klarheit, wenn ich sage
Warum verwendet es nicht den Typ von
x
?
Ich nehme an, ich meine
Warum versucht es nicht zuerst, den Typ von
x
zu verwenden?
Wie die Dokumentation besagt:
Könnte dieser Prozess mit beginnen:
"Gibt es in keiner Situation einen erwarteten Rückgabetyp? kann verwenden? "
Nein. Betrachten Sie zum Beispiel:
%Vor% Es gibt mehrere Überladungen der Methode ToString
, die unterschiedliche Datentypen verwenden. Der Compiler muss wissen, welcher Typ des Ausdrucks bekannt ist, welche Überladung zu verwenden ist.
Tags und Links c#