Chyba kompilátoru CS0077
Operátor as musí být použit s odkazovým typem nebo typem s možnou hodnotou null (int je nenulový typ hodnoty).
Operátor as byl předán typ hodnoty. Protože as
může vrátit hodnotu null, může být předán pouze typ odkazu nebo typ hodnoty s možnou hodnotou null.
Pomocí vzoru odpovídajícího operátoru is však můžeme přímo provést kontrolu typů a přiřazení v jednom kroku.
Následující ukázka vygeneruje 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;
}
}
}
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: