Číst v angličtině

Sdílet prostřednictvím


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