Freigeben über


implicit (C#-Referenz)

Das implicit-Schlüsselwort wird verwendet, um einen impliziten benutzerdefinierten Typkonvertierungsoperator zu deklarieren. Wenn durch die Konvertierung kein Datenverlust zu befürchten ist, können Sie es verwenden, um implizite Konvertierungen zwischen einem benutzerdefinierten Typ und einem anderen Typ zu ermöglichen.

Beispiel

class Digit
{
    public Digit(double d) { val = d; }
    public double val;
    // ...other members 

    // User-defined conversion from Digit to double 
    public static implicit operator double(Digit d)
    {
        return d.val;
    }
    //  User-defined conversion from double to Digit 
    public static implicit operator Digit(double d)
    {
        return new Digit(d);
    }
}

class Program
{
    static void Main(string[] args)
    {
        Digit dig = new Digit(7);
        //This call invokes the implicit "double" operator 
        double num = dig;
        //This call invokes the implicit "Digit" operator
        Digit dig2 = 12;
        Console.WriteLine("num = {0} dig2 = {1}", num, dig2.val);
        Console.ReadLine();
    }
}

Durch implizite Konvertierungen kann die Lesbarkeit des Quellcodes verbessert werden, da nicht erforderliche Typumwandlungen entfernt werden. Da implizite Konvertierungen jedoch keine explizite Umwandlung von einem Typ in einen anderen erfordern, ist Vorsicht angebracht, um unerwartete Ergebnisse zu vermeiden. In der Regel sollten durch implizite Konvertierungsoperatoren keine Ausnahmen ausgelöst werden oder Informationen verloren gehen, sodass sie sicher verwendet werden können, ohne dass sich der Programmierer dessen bewusst ist. Ein Konvertierungsoperator, der diese Kriterien nicht erfüllen kann, sollte als explicit markiert werden. Weitere Informationen hierzu finden Sie unter Verwenden von Konvertierungsoperatoren.

C#-Programmiersprachenspezifikation

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auch

Aufgaben

Gewusst wie: Implementieren von benutzerdefinierten Konvertierungen zwischen Strukturen (C#-Programmierhandbuch)

Referenz

C#-Schlüsselwörter

explicit (C#-Referenz)

operator (C#-Referenz)

Konzepte

C#-Programmierhandbuch

Weitere Ressourcen

C#-Referenz