Casting (Guida per programmatori C#)
È possibile eseguire la conversione di tipi di dati in modo esplicito tramite cast, tuttavia in alcuni casi sono consentite le conversioni implicite. Esempio:
static void TestCasting()
{
int i = 10;
float f = 0;
f = i; // An implicit conversion, no data will be lost.
f = 0.5F;
i = (int)f; // An explicit conversion. Information will be lost.
}
Un cast richiama esplicitamente l'operatore di conversione da un tipo a un altro. Se non viene definito tale operatore di conversione, il cast non verrà eseguito. È possibile scrivere operatori di conversione personalizzati per eseguire la conversione tra tipi definiti dall'utente. Per ulteriori informazioni sulla definizione di un operatore di conversione, vedere explicit (Riferimenti per C#) e implicit (Riferimenti per C#).
Esempio
Il programma descritto di seguito esegue il cast di double su int. Se il cast non è presente, il programma non verrà compilato.
class Test
{
static void Main()
{
double x = 1234.7;
int a;
a = (int)x; // cast double to int
System.Console.WriteLine(a);
}
}
Output
1234
Specifiche del linguaggio C#
Per ulteriori informazioni, vedere le seguenti sezioni incluse in Specifiche del linguaggio C#:
7.6.6 Espressioni cast
6.1 Conversioni implicite
6.2 Conversioni esplicite
Vedere anche
Riferimenti
Tipi di dati (Guida per programmatori C#)
Operatore () (Riferimenti per C#)
explicit (Riferimenti per C#)
implicit (Riferimenti per C#)
Concetti
Guida per programmatori C#
Operatori di conversione (Guida per programmatori C#)
Conversione di tipi generalizzata
Conversione esplicita
Conversione dei tipi esportati