Warum ich einen Compiler-Fehler hier:Integer Überlauf Ausnahme
int a = 2147483647 + 10;
und nicht hier, wenn ich die gleiche Operation bin ausführen:
int ten = 10;
int b = 2147483647 + ten;
ich die Verwendung von Lernen geprüft und die MSDN-Website wird nicht klar, warum die OverflowException im ersten Codeausschnitt ausgelöst wird:
Von de Fehler, ein Ausdruck, der nur konstante Werte enthält, verursacht einen Compilerfehler , wenn der Ausdruck einen Wert außerhalb des Bereichs des Zieltyps erzeugt. Wenn der Ausdruck einen oder mehrere nicht konstante Werte enthält, erkennt der Compiler den Überlauf nicht.
Es erklärt nur das Verhalten, aber nicht die Gründe für dieses Verhalten. Ich würde gerne wissen, was unter der Haube passiert.
Sie erhalten einen Compilerfehler, im ersten Fall keine Ausnahme. – CodesInChaos