Typenwandlung in C#

Um einen Typen in einen anderen zu verwandeln, gibt es in C# mehrere Wege. Zum einen gibt es das typische „Casten“, zum anderen das „Safty Casten“ und dann noch die „Convert“-Klasse. Beginnen wir mit der „Convert“-Klasse, da diese sich ein wenig von den anderen unterscheidet. Diese bietet uns statische Methoden wie „ToInt32“, um z.B. einen String in einen Integer zu wandeln. Allerdings stehen hier nur die .NET Standard-Datentypen wie Byte, Short, Integer, Long, Float, Double, Decimal, Character und String jeweils Signed und Unsigned (zumindest die Ganzzahlen) zur Verfügung. Sollte hier eine Wandlung nicht möglich sein, wird eine Ausnahme ausgelöst.

Zusätzlich gibt es auch noch das typische „Casten“, welches in nahezu jeder objektorientierten Programmiersprache möglich ist. Auch hierbei wird eine Ausnahme ausgelöst, wenn die Typenwandlung nicht möglich ist. Zusätzlich gibt es im .NET über das „as“-Keyword noch das „Safty Casten“. Dies erledigt die Typenwandlung und im Falle des unmöglichen, wird keine Ausnahme ausgelöst, sondern der Standardwert des Zieltypen hergestellt. Bedingt durch das nicht auslösen der Ausnahme empfehle ich diese Art der Typenwandlung zu vermeiden, denn es sorgt dafür, dass Fehler länger gesucht werden müssen als nötig.