Errore del compilatore CS0039

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile convertire il tipo 'tipo1' in 'tipo2' tramite una coversione dei riferimenti, una conversione boxing, una conversione unboxing, una conversione di disposizione o una conversione in tipo null
Cannot convert type 'type1' to 'type2' via a reference conversion, boxing conversion, unboxing conversion, wrapping conversion, or null type conversion

L'utilizzo dell'operatore as (Riferimenti per C#) è consentito nelle conversioni mediante ereditarietà e nelle conversioni reference e boxing. Per ulteriori informazioni, vedere Operatori di conversione (Guida per programmatori C#).

Esempio

Il seguente codice di esempio genera l'errore CS0039.

// CS0039.cs
using System;
class A
{
}
class B: A
{
}
class C: A
{
}
class M
{
    static void Main()
    {
        A a = new C();
        B b = new B();
        C c;

        // This is valid; there is a built-in reference
        // conversion from A to C.
        c = a as C;  

        //The following generates CS0039; there is no
        // built-in reference conversion from B to C.
        c = b as C;  // CS0039
    }
}