Typkonvertierung in C# verstehen: Implizites & Explizites Casting erklärt
Was ist Typkonvertierung?
Typkonvertierung (auch Type Casting genannt) bezeichnet die Umwandlung eines Datentyps in einen anderen. In C# gibt es zwei grundlegende Formen:
- Implizite Typkonvertierung – Diese wird automatisch und typsicher von C# durchgeführt. Beispiele sind die Umwandlung von kleineren in größere Ganzzahltypen (z. B.
intzulong) oder von abgeleiteten Klassen zu Basisklassen. - Explizite Typkonvertierung – Diese muss vom Entwickler bewusst mittels Cast-Operator
(Zieltyp)angefordert werden, da Datenverlust oder Laufzeitfehler möglich sind.
Beispiel für explizite Konvertierung
Das folgende Programm wandelt einen double in einen int um – die Nachkommastellen gehen dabei verloren.
using System;
namespace TypeConversionApplication
{
class ExplicitConversion
{
static void Main(string[] args)
{
double d = 5673.74;
int i = (int)d; // expliziter Cast
Console.WriteLine(i); // Ausgabe: 5673
Console.ReadKey();
}
}
}
Integrierte Konvertierungsmethoden (Convert-Klasse)
C# stellt über die Klasse System.Convert zahlreiche statische Methoden für typische Umwandlungen bereit:
| Methode | Beschreibung |
|---|---|
ToBoolean | Konvertiert einen Wert in bool, sofern möglich. |
ToByte | Konvertiert in byte (0–255). |
ToChar | Konvertiert in ein einzelnes Unicode-Zeichen (char). |
ToDateTime | Konvertiert Zahlen oder Strings in DateTime. |
ToDecimal | Konvertiert Gleitkomma- oder Ganzzahlen in decimal. |
ToDouble | Konvertiert in double. |
ToInt16 | Konvertiert in 16-Bit-Ganzzahl (short). |
ToInt32 | Konvertiert in 32-Bit-Ganzzahl (int). |
ToInt64 | Konvertiert in 64-Bit-Ganzzahl (long). |
ToSByte | Konvertiert in vorzeichenbehaftetes Byte (sbyte). |
ToSingle | Konvertiert in float (einfache Genauigkeit). |
ToString | Konvertiert beliebige Typen in ihre String-Repräsentation. |
ToType | Konvertiert in einen zur Laufzeit angegebenen Typ. |
ToUInt16 | Konvertiert in ushort (vorzeichenlos 16 Bit). |
ToUInt32 | Konvertiert in uint (vorzeichenlos 32 Bit). |
ToUInt64 | Konvertiert in ulong (vorzeichenlos 64 Bit). |
Beispiel: Verschiedene Typen in String konvertieren
using System;
namespace TypeConversionApplication
{
class StringConversion
{
static void Main(string[] args)
{
int i = 75;
float f = 53.005f;
double d = 2345.7652;
bool b = true;
Console.WriteLine(i.ToString()); // "75"
Console.WriteLine(f.ToString()); // "53.005"
Console.WriteLine(d.ToString()); // "2345.7652"
Console.WriteLine(b.ToString()); // "True"
Console.ReadKey();
}
}
}
Hinweis: Jeder Typ in C# erbt von object und besitzt daher die Methode ToString(). Für kulturunabhängige Formatierung sollten Sie Convert.ToString() oder string.Format mit CultureInfo.InvariantCulture verwenden.
C Sprache
- C#-Typkonvertierung meistern: Implizit, Explizit, Parse und Convert-Methoden
- Python-Typkonvertierung & Casting meistern: Umfassender Leitfaden
- Zahlen, Typkonvertierung und Mathematik in Python meistern
- Java Type Casting meistern: Von Widening zu Narrowing und darüber hinaus
- Java Generics meistern: Sortierung vereinfachen & Typsicherheit erhöhen
- ASTM A1018 Güte CS Type B: Unlegierter Baustahl – Spezifikationen und Eigenschaften
- ASTM A424 Güte Type II: Stahl für Kesselrohre – Spezifikationen und Leistungswerte
- ASTM A424 Güte Type I: Stahl für Kesselrohre – Wichtige Eigenschaften und Leistung
- ASTM A792 Güte CS Type A – Aluminium-Zink-beschichteter Stahlblech: Eigenschaften & Spezifikationen
- ASTM A53 Güte A Typ E – Spezifikationen & Wichtige Eigenschaften