1.13 Einen verkleinernden numerischen Cast sicher durchführen
Problem
Sie müssen einen Wert von einem größeren Typ auf einen kleineren Typ casten und dabei Bedingungen, die zu Informationsverlust führen, sauber behandeln. Beispielsweise führt ein Cast von einem long
auf ein int
-Ergebnis nur dann zu einem Informationsverlust, wenn der Wert im long
-Datentyp größer als int.MaxSize
ist.
Lösung
Am einfachsten lässt sich das mit dem Schlüsselwort checked
erreichen. Die folgende Methode akzeptiert zwei long
-Werte und addiert diese. Das Ergebnis wird dann in einen int
umgewandelt. Wenn eine Überlaufbedingung vorliegt, wird eine OverflowException
ausgelöst:
using System; public void UseChecked(long lhs, long rhs) { int result = 0; try { result = checked((int)(lhs ...
Get C# Kochbuch now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.