Penjelasan terperinci tentang skop pembolehubah C#: Mengapakah satu contoh kod dikompilasi dan lulus, tetapi yang lain gagal disebabkan oleh skop pembolehubah?
Berikut menerangkan peraturan skop pembolehubah C# yang menyebabkan hasil kompilasi kedua-dua contoh kod ini berbeza.
Contoh kod 1: Penyusunan gagal
Dalam contoh kod pertama, pengisytiharan pertama pembolehubah i (int i=10; // Point1) dalam gelung for menyebabkan ralat kompilasi. Ini kerana pembolehubah i telah diisytiharkan dalam kaedah yang mengandungi gelung. Spesifikasi C# menetapkan bahawa berbilang elemen dengan nama yang sama tidak dibenarkan wujud dalam ruang perisytiharan pembolehubah tempatan.
Selain itu, rujukan kedua kepada objX di luar gelung for (var objX = new OtherClassOfMine(); // Point2) juga menyebabkan ralat kompilasi. Ini kerana pembolehubah objX telah diisytiharkan di dalam gelung for dan mengikut spesifikasi C#, nama mudah seperti objX yang digunakan dalam blok bersarang mesti merujuk kepada entiti yang sama dalam blok.
Contoh kod 2: Penyusunan berjaya
Dalam contoh kod kedua, dua untuk gelung mengisytiharkan pembolehubah i dan objX dalam blok masing-masing. Memandangkan setiap blok menggunakan set pengisytiharan pembolehubahnya sendiri, tiada pertindihan dalam nama pembolehubah atau skop dan kod berjaya disusun.
Ringkasan:
Contoh kod 1 melanggar peraturan ruang pengisytiharan pembolehubah dan mengisytiharkan berbilang pembolehubah dengan nama yang sama dalam skop yang sama. Contoh Kod 2 mengelakkan masalah ini dengan mengisytiharkan pembolehubah dalam blok berasingan. Memahami peraturan skop ini adalah penting untuk menulis kod C# yang betul dan boleh diselenggara.
Atas ialah kandungan terperinci Mengapa Satu Sampel Kod C# Disusun Sementara Yang Lain Gagal Kerana Skop Pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!