Standardmäßig tritt in C# ein Kompilierungsfehler auf, wenn der Wert eines konstanten Ausdrucks den Maximalwert des Zieltyps überschreitet.
Wenn der Zieldatentyp die Daten eines nicht konstanten Ausdrucks nicht aufnehmen kann, werden die Daten während der Zuweisung abgeschnitten.
class Program { static void Main(string[] args) { int n = int.MaxValue;//n=2147483647 n = n + 1; System.Console.WriteLine(n); } }
Zu diesem Zeitpunkt kann der int.MaxValue durch Hinzufügen von 1 im Speicher erklärt werden wird zu 32-Bit 0. Wenn 0 als negatives Vorzeichen betrachtet wird, erhalten wir -2147483648.
Das Platzieren des obigen Codes im geprüften Block führt zu einem System.OverflowException-Typ.
class Program { static void Main(string[] args) { checked { int m = int.MaxValue; m = m + 1; System.Console.WriteLine(m); } } }
Eine in einem geprüften Block in C# platzierte Variable löst eine Ausnahme aus, wenn während der Laufzeit eine Überlaufzuweisung auftritt.
unchecked wird verwendet, um die Überlaufprüfung ganzzahliger arithmetischer Operationen und Konvertierungen abzubrechen.
Das Obige ist der Inhalt der C#-Schwierigkeiten nacheinander (7): aktiviert und deaktiviert. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!