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;
}
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: