Errore del compilatore CS0077

Aggiornamento: novembre 2007

Messaggio di errore

L'operatore as deve essere utilizzato con un tipo di riferimento o un tipo non nullable ('int' è un tipo di valore non nullable).
The as operator must be used with a reference type or nullable type ('int' is a non-nullable value type).

All'operatore as è stato passato un tipo di valore. Poiché as può restituire null, è possibile passare a questo operatore solo tipi di riferimento o tipi nullable. Per ulteriori informazioni sui tipi nullable, vedere Tipi nullable (Guida per programmatori C#).

Il seguente codice di esempio genera l'errore 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;
   }
}