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