Ler em inglês

Partilhar via


Erro do compilador CS0077

O operador as deve ser usado com um tipo de referência ou tipo anulável ('int' é um tipo de valor não anulável).

O operador as foi passado um tipo de valor. Como as pode retornar null, só pode ser passado um tipo de referência ou um tipo de valor anulável.

No entanto, usando a correspondência de padrões com o operador is , podemos executar diretamente a verificação de tipo e atribuições em uma etapa.

O exemplo a seguir gera 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;
      } 
   }  
}