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#)