Ler em inglês

Compartilhar via


Erro do Compilador CS0077

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

O operador as foi passado para um tipo de valor. Como as pode retornar null, ele só pode ser passado para 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 as atribuições em uma única etapa.

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