implicit (Riferimenti per C#)

La parola chiave implicit viene utilizzata per dichiarare un operatore di conversione implicita di tipi definita dall'utente. Utilizzarla per attivare le conversioni implicite tra un tipo definito dall'utente e un un altro tipo, se è garantito che tale conversione non risulti in una perdita di dati.

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

Note

Grazie all'eliminazione dei cast non necessari, le conversioni implicite contribuiscono a migliorare la leggibilità del codice sorgente. Tuttavia, poiché per le conversioni implicite non è necessario eseguire il cast in modo esplicito da un tipo all'altro, è importante assicurarsi di non ottenere risultati imprevisti. In generale, per poter essere utilizzati in modo sicuro senza il controllo del programmatore, gli operatori di conversione implicita non devono generare eccezioni né determinare perdite di dati. Se un operatore di conversione non soddisfa questi requisiti, è opportuno contrassegnarlo come explicit. Per ulteriori informazioni, vedere Utilizzo degli operatori di conversione.

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere la seguente sezione inclusa in Specifiche del linguaggio C#:

  • 6.1 Conversioni implicite

  • 10.9.3 Operatori di conversione

Vedere anche

Attività

Procedura: implementare conversioni tra strutture definite dall'utente (Guida per programmatori C#)

Riferimenti

Parole chiave di C#
explicit (Riferimenti per C#)
operator (Riferimenti per C#)

Concetti

Guida per programmatori C#

Altre risorse

Riferimenti per C#