Auf Englisch lesen

Freigeben über


Compilerfehler CS0077

Der as-Operator muss mit einem Referenztyp oder einem Typ, der NULL-Werte zulässt, verwendet werden. ("int" ist ein Werttyp, der keine NULL-Werte zulässt.)

An den as -Operator wurde ein Werttypübergeben. Da NULL von as zurückgegeben werden kann, kann nur ein Verweistyp oder ein Nullwerte zulassender Typ übergeben werden.

Mithilfe des Musterabgleichs mit dem is-Operator können wir die Typüberprüfung und die Typzuweisungen jedoch direkt in einem Schritt durchführen.

Im folgenden Beispiel wird CS0077 generiert:

// 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;
      } 
   }  
}