blikk info infothek forum galerie sitemap

Datentypkonvertierung

anfang zurueck weiter ende nach oben
Philipp und Peter     

 

Impliziten Typkonvertierung in C#:

 

 

Sie funktioniert nicht, wenn der Wertebereich des Anfangsdatentyps größer ist als der des Zieldatentyps:

 

static void Main(string[] args)

        {

            //Deklarierung einer Int Variablen

            int myInt;

            //Initialisierung der Variablen myInt

            myInt = 3.0; //FEHLER

        }

 

Wenn der Wertebereich des Zieldatentyps größer ist als der des Anfangsdatentyps, so findet die Konvertierung statt:

 

static void Main(string[] args)

        {

            //Deklarierung einer Int Variablen

            double myDouble;

            //Initialisierung der Variablen myInt

            myDouble = 599; //RICHTIG

        }

 

Es kann keine implizite Datentypkonvertierung stattfinden, wenn String-Werte in numerische Werte umgewandelt werden sollen:

 

static void Main(string[] args)

        {

            //Deklarierung einer Int Variable

            int myInt;

            // Initialisierung der Variable

             myInt = "399";//FEHLER

            // "399" ist vom Datentyp String

        }

 

 

Umgekehrt kann keine implizite Datentypkonvertierung stattfinden, wenn numerische Werte in Strings umgewandelt werden:

 

static void Main(string[] args)

        {

            //Deklarierung einer String Variable

            string myString;

            // Initialisierung der Variable

            myString = 399; //FEHLER

            // 399 ist vom Datentyp Int

        }

 

 

Der Compiler konvertiert  numerische Ausdrücke in double um, sobald nur einer der Operanden von diesem Datentyp ist:

 

9(int)+12(int)+4.0(double)+6(int)

 

static void Main(string[] args)

        {

            // Die numerischen Ausdrücke werden alle in Double umgewandelt

            Console.WriteLine((9 + 12 + 4.0 + 6).GetType());

            //Ausgabe: System.double

  }

 

 

Bei einer impliziten Typumwandlung  vom Datentyp char nach int wird der char-Wert mit Hilfe des Unicodes zu einem int-Wert konvertiert. Dem char-Wert ’A’ ist im Unicode-Zeichensatz die Ordnungsnummer 65 zugeordnet:

 

static void Main(string[] args)

        {

            // Deklarierung und Initialisierung einer Int Variable

            int myInt = 'A';

            // Ausgabe der Variable myInt

            Console.WriteLine(myInt); // Ausgabe: 65

 

        }

 

 

Diese Typumwandlung funktioniert nur vom Datentyp char  nach int und nicht umgekehrt:

 

static void Main(string[] args)

        {

            // Deklarierung und Initialisierung einer Char Variable

            char myChar = 65;// FEHLER

        }

 

nach oben