Kesalahan Kompilator CS0077

Operator as harus digunakan dengan jenis referensi atau jenis yang dapat diubah ke null ('int' adalah jenis nilai yang tidak dapat diubah ke null).

Operator as diberikan jenis nilai. Karena as dapat mengembalikan null, itu hanya dapat diteruskan dengan jenis referensi atau jenis nilai yang dapat diubah ke null.

Namun, menggunakan pencocokan pola dengan operator is , kita dapat langsung melakukan pemeriksaan jenis dan penugasan dalam satu langkah.

Sampel berikut menghasilkan 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;
      } 
   }  
}