Bagikan melalui


Kesalahan Kompiler CS0106

Pengubah 'modifier' tidak berlaku untuk item ini

Anggota kelas atau antarmuka ditandai dengan pengubah akses yang tidak valid. Contoh berikut menjelaskan beberapa pengubah yang tidak valid ini:

  • Pengubah statis tidak diizinkan pada fungsi lokal. Fitur fungsi lokal statis didukung dimulai dengan C # 8.0. Kompiler yang tidak mendukung C # 8.0 menghasilkan CS0106 ketika Anda mencoba menggunakan fitur ini. Namun, kompiler yang mendukung C # 8.0 tetapi versi bahasa yang digunakan sebelum C # 8.0 akan menghasilkan diagnostik yang menyarankan agar Anda menggunakan C # 8.0 atau yang lebih baru.

  • Kata kunci public tidak diperbolehkan pada deklarasi antarmuka eksplisit. Dalam hal ini, hapus kata kunci public dari deklarasi antarmuka eksplisit.

  • Kata kunci abstrak tidak diizinkan pada deklarasi antarmuka eksplisit karena implementasi antarmuka eksplisit tidak pernah dapat ditimpa.

  • Pengubah akses tidak diperbolehkan pada fungsi lokal. Fungsi lokal selalu privat.

  • Kata kunci baca-saja tidak diizinkan pada metode dalam jenis kelas, dengan pengecualian ref readonly pengembalian (readonly kata kunci harus muncul setelah ref kata kunci).

Dalam rilis Visual Studio sebelumnya, pengubah static tidak diizinkan pada kelas, tetapi kelas static diizinkan dimulai dengan Visual Studio 2005.

Untuk informasi lebih lanjut, lihat Antarmuka .

Contoh

Sampel berikut menghasilkan CS0106:

// CS0106.cs
namespace MyNamespace
{
   interface I
   {
      void M1();
      void M2();
   }

   public class MyClass : I
   {
      public readonly int Prop1 { get; set; }   // CS0106
      public int Prop2 { get; readonly set; }   // CS0106

      public void I.M1() {}   // CS0106
      abstract void I.M2() {}   // CS0106

      public void AccessModifierOnLocalFunction()
      {
         public void LocalFunction() {}   // CS0106
      }

      public readonly void ReadonlyMethod() {}   // CS0106
      // Move the `readonly` keyword after the `ref` keyword
      public readonly ref int ReadonlyBeforeRef(ref int reference)   // CS0106
      {
         return ref reference;
      }

      public static void Main() {}
   }

   public readonly class ReadonlyClass {}   // CS0106
}