Condividi tramite


implicit (Riferimenti per C#)

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

Esempio

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

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 Specifiche del linguaggio C#. La specifica del linguaggio è la fonte ufficiale per la sintassi e l'utilizzo di C#.

Vedere anche

Attività

Procedura: implementare conversioni tra struct 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#