Überlaufbehandlung für C#-Ganzzahlen
Im Zusammenhang mit Project Euler Problem 10 ist bei der Verwendung einer Ganzzahl (int) ein unerwartetes Verhalten aufgetreten. Variable zur Berechnung der Summe von Primzahlen unter zwei Millionen. Obwohl das Ergebnis den Maximalwert für ein int überschreitet, hat C# keine Überlaufausnahme ausgelöst.
Im Gegensatz zu einigen anderen Programmiersprachen lösen C#-Ganzzahloperationen standardmäßig keine Ausnahmen bei einem Überlauf aus. Das bedeutet, dass bei einem Überlauf das Ergebnis einfach auf einen Wert innerhalb des Bereichs des Datentyps „umgebrochen“ wird. Im Fall eines int hätte das Ergebnis im negativen Wertebereich gelegen, weit entfernt von der tatsächlich gesuchten Summe.
Um den Überlauf explizit zu behandeln, haben Sie zwei Möglichkeiten:
int result = checked(largeInt + otherLargeInt);
In diesem Fall löst der Überlauf eine System.OverflowException aus.
Das Gegenteil von aktiviert ist deaktiviert, wodurch Überlaufprüfungen unterdrückt werden. Dies sollte nur verwendet werden, wenn Überlaufprüfungen in den Projekteinstellungen aktiviert sind.
Das obige ist der detaillierte Inhalt vonWie kann ich mit einem Ganzzahlüberlauf in C# umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!