Leggere in inglese

Condividi tramite


Errore del compilatore CS0077

L'operatore as deve essere usato con un tipo riferimento o con un tipo nullable ('int' è un tipo valore non nullable).

All'operatore as operatore è stato passato un tipo valore. Dato che as può restituire null, può passare solo un tipo di riferimento o un tipo di valore nullable.

Tuttavia, usando i criteri di ricerca con l'operatore is , è possibile eseguire direttamente il controllo dei tipi e le assegnazioni in un unico passaggio.

L'esempio seguente genera l'errore CS0077:

// CS0077.cs  
using System;  

struct S  
{  
}  
  
class M  
{  
   public static void Main()  
   {  
      object o;
      S s;  

      o = new S();
  
      s = o as S;    // CS0077, S is not a reference type

      // Use pattern matching instead of as
      if (o is S sValue)
      {
          s = sValue;
      } 
   }  
}