Baca dalam bahasa Inggris

Bagikan melalui


Compiler Error CS0844

Tidak dapat menggunakan variabel lokal 'name' sebelum dideklarasikan. Deklarasi variabel lokal menyembunyikan bidang 'nama'.

Pengidentifikasi hanya dapat memiliki satu arti dalam blok tertentu. Variabel lokal yang memiliki nama yang sama dengan bidang kelas dapat menyembunyikan bidang dengan memperkenalkan arti kedua untuk pengidentifikasi. Oleh karena itu kompilator menghasilkan kesalahan ketika Anda merujuk ke bidang kelas dalam metode, lalu mendeklarasikan variabel lokal dengan nama yang sama.

Untuk memperbaiki kesalahan ini

  • Menggunakan this.num untuk merujuk ke bidang kelas.

  • Memberi variabel lokal nama yang berbeda dari bidang kelas.

Contoh

Kode berikut menghasilkan CS0844:

C#
class Test  
    {  
        int num;  
        public void TestMethod()  
        {  
            num = 5; // CS0844  
            int num = 6;
        }  
        public static int Main()  
        {  
            return 1;  
        }  
    }  

Memperbaiki kesalahan dengan menggunakan this.num untuk merujuk ke bidang kelas

C#
class Test  
    {  
        int num;  
        public void TestMethod()  
        {  
            this.num = 5; // Error fixed.
            int num = 6;
        }  
        public static int Main()  
        {  
            return 1;  
        }  
    }  

Memperbaiki kesalahan dengan memberi variabel lokal nama yang berbeda dari bidang kelas

C#
class Test  
    {  
        int num;  
        public void TestMethod()  
        {  
            num = 5; // Error fixed.
            int num2 = 6;
        }  
        public static int Main()  
        {  
            return 1;  
        }  
    }