Keine Überlauf-Ausnahme für int in C #?

Hatte ich dieses seltsame Erlebnis mit problem Nummer 10 auf Project Euler (tolle Seite übrigens). Die Aufgabe war es, zu berechnen, die Summe aller Primzahlen unter zwei Millionen.

Ich habe eine int für die Summe, und meine algorith erzeugt eine Antwort, aber wenn ich es eingefügt, um zu überprüfen, die Antwort, es war falsch.

Es stellte sich heraus, dass das Ergebnis zu groß, um zu passen in eine int, aber würde dies nicht zu einem überlauf führen error oder sowas? Stattdessen gibt es nur einen Wert zurückgegeben weit Weg von der realen Antwort.

Wenn ich den Typ geändert zu lang, war alles hunky dory.

Kommentar zu dem Problem - Öffnen
Wollen Sie wirklich jeden integer-operation zu überprüfen überlauf? Kommentarautor: John Saunders
Gut, es shure würde gespeichert haben mich einige Zeit in diesem speziellen Fall 😉 Kommentarautor: erikric
In diesem Fall, ja. Die überwiegende Mehrheit der Betriebe ist nicht möglich überlauf, wenn. Es wäre interessant, wenn der compiler könnte das beweisen, und deaktivieren Sie die überprüfung aus, als ein Ergebnis, aber ich bezweifle sehr, das tut es. Kommentarautor: Thorarin

InformationsquelleAutor der Frage erikric | 2010-01-13

Schreibe einen Kommentar