Sdílet prostřednictvím


implicit (referenční dokumentace jazyka C#)

implicit Deklarovat operátor implicitní uživatelem definovaný typ převodu se používá klíčové slovo.Můžete povolit implicitní převody mezi uživatelem a jiného typu, pokud převod je zaručena způsobit ztrátu dat.

Příklad

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();
    }
}

Odstraněním nepotřebných nádech implicitní převody lze zlepšit čitelnost zdrojového kódu.Ale protože implicitní převody nevyžadují programátorům explicitně nádech z jednoho typu na druhý, musí dbát zabránit neočekávané výsledky.Implicitní převod operátory by obecně nikdy vyvolávají výjimky a nikdy ztrátu informací tak, aby bylo možné bezpečně bez programátora povědomí.Pokud operátor převodu nelze splňují tato kritéria, by měly být označeny explicit.Další informace naleznete v tématu Pomocí operátory převodu.

Specifikace jazyka C#

Další informace najdete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.

Viz také

Úkoly

Postupy: Implementace uživatelem definovaných převodů mezi strukturami (Průvodce programováním v C#)

Referenční dokumentace

Klíčová slova jazyka C#

explicit (Referenční dokumentace jazyka C#)

operator (Referenční dokumentace jazyka C#)

Koncepty

Průvodce programováním v C#

Další zdroje

Referenční dokumentace jazyka C#