Error del compilador CS0077

Actualización: noviembre 2007

Mensaje de error

El operador as se debe usar con un tipo de referencia o un tipo que acepte valores null ('int' es un tipo de valor que no acepta valores null).
The as operator must be used with a reference type or nullable type ('int' is a non-nullable value type).

Se pasó al operador as un tipo de valor. Dado que as puede devolver null, sólo se le pueden pasar tipos de referencia o tipos que acepten valores null. Para obtener más información sobre los tipos que aceptan valores null, vea Tipos que aceptan valores NULL (Guía de programación de C#).

El código siguiente genera el error CS0077:

// CS0077.cs
using System;

class C
{
}

struct S
{
}

class M
{
   public static void Main()
   {
      object o1, o2;
      C c;
      S s;

      o1 = new C();
      o2 = new S();

      s = o2 as S;  // CS0077, S is not a reference type.
      // try the following line instead
      // c = o1 as C;
   }
}