Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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 a reference type or a nullable value type.
However, using pattern matching with the is operator, we can directly perform type checking and assignments in one step.
The following sample generates 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;
}
}
}