Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Grundlegende Typumwandlung | Section
C#-Grundlagen

Grundlegende Typumwandlung

Swipe um das Menü anzuzeigen

Typumwandlung ist der Prozess, bei dem ein Wert von einem Datentyp in einen anderen konvertiert wird. Dies ist häufig zwischen Typen möglich, die Zahlen darstellen. Zum Beispiel kann ein float in einen int und umgekehrt umgewandelt werden. Allerdings ergibt es keinen logischen Sinn, einen string direkt in einen int zu konvertieren, und dies ist ohne zusätzliche Schritte nicht möglich.

Es gibt zwei Arten der Typumwandlung: implizite Typumwandlung und explizite Typumwandlung.

Implizite Typumwandlung erfolgt automatisch, wenn ein Wert von einem Typ in einen anderen konvertiert wird, üblicherweise von einem kleineren zu einem größeren Datentyp.

main.cs

main.cs

1234
int val1 = 10; long val2 = val1; // int is automatically converted to long float val3 = var1; // int is automatically converted to float double var4 = var1; // int is automatically converted to double

Implizite Typumwandlung erfolgt automatisch, wenn ein kleinerer Datentyp in einen größeren konvertiert wird. Die Größe eines Datentyps wird durch die Menge an Daten bestimmt, die er speichern kann, gemessen in Bits. Zum Beispiel kann ein int 32 Bits speichern, während ein long 64 Bits speichern kann, daher erfolgt die Umwandlung von int zu long automatisch. Ebenso kann ein float problemlos in ein double umgewandelt werden.

Hier ist eine Liste von Datentypen, geordnet von klein nach groß: char -> int -> long -> float -> double

Explizite Typumwandlung bedeutet, dass Sie als Programmierer dem Computer mitteilen, einen Wert in einen anderen Datentyp zu konvertieren. Dies ist notwendig, wenn von einem größeren Datentyp in einen kleineren konvertiert wird, da dabei Daten verloren gehen können. Zum Beispiel führt die Umwandlung des Floats 3.14 in einen Integer zu 3, wobei der Dezimalteil verloren geht. Deshalb müssen Sie dem Computer explizit mitteilen, solche Umwandlungen vorzunehmen.

main.cs

main.cs

123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = val1; // Error: Cannot implicitly convert type 'float' to 'int'. An explicit conversion exists (are you missing a cast?) Console.WriteLine(val1); Console.WriteLine(val2); } } }

Um den Fehler im obigen Code zu beheben, muss val1 explizit in einen Ganzzahlwert umgewandelt werden.

Die Syntax für einen Cast ist (datatype) value, zum Beispiel (int) 3.1415. In diesem Fall schreiben wir also (int) val1:

main.cs

main.cs

123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = (int) val1; Console.WriteLine(val1); Console.WriteLine(val2); } } }
question mark

Welche der folgenden Aussagen sind korrekt?

Wählen Sie alle richtigen Antworten aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 21

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 1. Kapitel 21
some-alt