Compiler Error CS0077
The as operator must be used with a reference type or nullable type ('int' is a non-nullable value type).
The as operator was passed a value type. Because as can return null, it can only be passed reference types or nullable type. For more information about nullable types, see Nullable Types (C# Programming Guide).
The following sample generates CS0077:
// CS0077.cs
using System;
class C
{
}
struct S
{
}
class M
{
public static void Main()
{
object o1, o2;
C c;
S s;
o1 = new C();
o2 = new S();
s = o2 as S; // CS0077, S is not a reference type.
// try the following line instead
// c = o1 as C;
}
}