Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C#-Typkonvertierung meistern: Implizit, Explizit, Parse und Convert-Methoden

C#-Typkonvertierung meistern

Lernen Sie, wie Sie in C# zwischen Datentypen konvertieren – von impliziten und expliziten Casts bis zu den leistungsstarken Parse- und Convert-APIs – mit klaren Beispielen und Best-Practice-Hinweisen.

Typkonvertierung – das Ändern eines Werts von einem Datentyp in einen anderen – ist eine Kernkompetenz in C#. Zu verstehen, wann und wie man jede Konvertierungsmethode verwendet, stellt sicher, dass Ihr Code sowohl sicher als auch effizient ist.

In C# fallen Konvertierungen in zwei große Kategorien:

  1. Implizite Typkonvertierungen
  2. Explizite Typkonvertionen (Casting)

1. Implizite Typkonvertierung in C#

Implizite Konvertierungen werden vom Compiler automatisch durchgeführt, wenn kein Datenverlust auftreten kann. Sie sind sicher und erfordern keine zusätzliche Syntax.

Typische Szenarien beinhalten die Konvertierung eines kleineren numerischen Typs in einen größeren – z. B. int zu double –, damit der Wert ohne Abschneigung dargestellt werden kann.

Beispiel: Implizite Typkonvertierung

using System;

namespace MyApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            int numInt = 500;
            // Implizite Konvertierung
            double numDouble = numInt;
            Console.WriteLine($"numInt Wert: {numInt}");
            Console.WriteLine($"numInt Typ: {numInt.GetType()}");
            Console.WriteLine($"numDouble Wert: {numDouble}");
            Console.WriteLine($"numDouble Typ: {numDouble.GetType()}");
            Console.ReadLine();
        }
    }
}

Ausgabe

numInt Wert: 500
numInt Typ: System.Int32
numDouble Wert: 500
numDouble Typ: System.Double

Da double eine größere Kapazität hat, fördert der Compiler den int-Wert sicher ohne Überlaufrisiko.

Hinweis: Implizite Konvertierungen verlieren nie Daten, erhöhen aber die Größe des Zieldatentyps.


2. Explizite Typkonvertierung (Casting) in C#

Explizite Konvertierungen, oder Casts, werden verwendet, wenn von einem größeren in einen kleineren Typ oder zwischen unverwandten Typen konvertiert wird. Der Entwickler muss die Absicht signalisieren, und der Compiler kann Warnungen ausgeben, wenn die Konvertierung Daten verwerfen könnte.

Beispiel: Explizite Typkonvertierung

using System;

namespace MyApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            double numDouble = 1.23;
            int numInt = (int)numDouble; // Expliziter Cast
            Console.WriteLine($"Original double Wert: {numDouble}");
            Console.WriteLine($"Konvertierter int Wert: {numInt}");
            Console.ReadLine();
        }
    }
}

Ausgabe

Original double Wert: 1.23
Konvertierter int Wert: 1

Der Cast schneidet den Bruchteil ab, sodass 1.23 zu 1 wird. Wenn Präzision wichtig ist, erwägen Sie Rundungsmethoden vor dem Cast.

Hinweis: Casting wird auch als Typumwandlung bezeichnet.


3. Strings mit Parse() konvertieren

Bei der Konvertierung von string in einen numerischen Typ bieten int.Parse, double.Parse etc. einen direkten und typsicheren Ansatz.

Beispiel: Verwendung von int.Parse

using System;

namespace Conversion
{
    class Program
    {
        static void Main(string[] args)
        {
            string n = "100";
            int a = int.Parse(n);
            Console.WriteLine($"Original string Wert: {n}");
            Console.WriteLine($"Konvertierter int Wert: {a}");
            Console.ReadLine();
        }
    }
}

Ausgabe

Original string Wert: 100
Konvertierter int Wert: 100

Der Versuch, einen nicht-numerischen String wie "test" zu parsen, löst eine FormatException aus. In Produktionscode umschließen Sie den Aufruf mit try-catch oder verwenden int.TryParse für eine fehlerfreie Behandlung.


4. Die Convert-Klasse

Die statische Convert-Klasse bietet eine breite Palette von Methoden zur Konvertierung zwischen vielen Datentypen, oft mit internen Prüfungen.

MethodeBeschreibung
ToBoolean()Konvertiert einen Wert zu bool
ToChar()Konvertiert einen Wert zu char
ToDouble()Konvertiert einen Wert zu double
ToInt16()Konvertiert einen Wert zu 16-Bit-int
ToString()Konvertiert einen Wert zu string

Nachfolgend illustrative Beispiele für gängige Konvertierungen.

Beispiel: int → string und double

using System;

namespace Conversion
{
    class Program
    {
        static void Main(string[] args)
        {
            int num = 100;
            Console.WriteLine($"int Wert: {num}");
            string str = Convert.ToString(num);
            Console.WriteLine($"string Wert: {str}");
            double dbl = Convert.ToDouble(num);
            Console.WriteLine($"Double Wert: {dbl}");
            Console.ReadLine();
        }
    }
}

Ausgabe

int Wert: 100
string Wert: 100
Double Wert: 100

Beispiel: string ↔ double

using System;

namespace Conversion
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "99.99";
            Console.WriteLine($"Original string Wert: {str}");
            double dbl = Convert.ToDouble(str);
            Console.WriteLine($"Konvertierter Double Wert: {dbl}");

            double num = 88.9;
            Console.WriteLine($"Original double Wert: {num}");
            string newStr = Convert.ToString(num);
            Console.WriteLine($"Konvertierter string Wert: {newStr}");
            Console.ReadLine();
        }
    }
}

Ausgabe

Original string Wert: 99.99
Konvertierter Double Wert: 99.99
Original double Wert: 88.9
Konvertierter string Wert: 88.9

Beispiel: int → bool

using System;

namespace Conversion
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1 = 0;
            int num2 = 1;
            bool bool1 = Convert.ToBoolean(num1);
            bool bool2 = Convert.ToBoolean(num2);
            Console.WriteLine($"Boolescher Wert von 0 ist: {bool1}");
            Console.WriteLine($"Boolescher Wert von 1 ist: {bool2}");
            Console.ReadLine();
        }
    }
}

Ausgabe

Boolescher Wert von 0 ist: False
Boolescher Wert von 1 ist: True

Hinweis: In C# wird 0 als false interpretiert; jede nicht-null Ganzzahl ergibt true.


Durch das Beherrschen dieser Konvertierungstechniken schreiben Sie Code, der sowohl typsicher als auch ausdrucksstark ist, was Laufzeitfehler reduziert und die Lesbarkeit verbessert.

C Sprache

  1. Python-Typkonvertierung & Casting meistern: Umfassender Leitfaden
  2. Zahlen, Typkonvertierung und Mathematik in Python meistern
  3. Java Type Casting meistern: Von Widening zu Narrowing und darüber hinaus
  4. Java Generics meistern: Sortierung vereinfachen & Typsicherheit erhöhen
  5. ASTM A1018 Güte CS Type B: Unlegierter Baustahl – Spezifikationen und Eigenschaften
  6. ASTM A424 Güte Type II: Stahl für Kesselrohre – Spezifikationen und Leistungswerte
  7. ASTM A424 Güte Type I: Stahl für Kesselrohre – Wichtige Eigenschaften und Leistung
  8. ASTM A792 Güte CS Type A – Aluminium-Zink-beschichteter Stahlblech: Eigenschaften & Spezifikationen
  9. ASTM A53 Güte A Typ E – Spezifikationen & Wichtige Eigenschaften
  10. ASTM A53 Güte A Typ S Rohr – Spezifikationen & Wichtige Eigenschaften