Error del compilador CS0039

Actualización: noviembre 2007

Mensaje de error

No puede convertir el tipo 'tipo1' en 'tipo2' mediante una conversión de referencia, boxing, unboxing, de ajuste del texto o de tipo null
Cannot convert type 'type1' to 'type2' via a reference conversion, boxing conversion, unboxing conversion, wrapping conversion, or null type conversion

El operador as (Referencia de C#) se puede utilizar en las conversiones de herencia, en las conversiones de referencia y en conversiones 'boxing'. Para obtener más información, vea Operadores de conversión (Guía de programación de C#).

Ejemplo

En el código siguiente se genera el error 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
    }
}