Kekaburan skop pembolehubah dalam C#
Skop pembolehubah dalam C# boleh mengelirukan kerana peraturan bahasa tertentu. Mari kita gali dua contoh kod untuk memahami masalah:
Contoh kod 1 (ralat penyusunan):
<code class="language-c#">public void MyMethod(){ int i = 10; for(int x = 10; x < 20; x++){ int i = x; // 编译错误:在此作用域内重复声明变量 'i' object objX = new object(); // 编译错误:在此作用域内重复声明变量 'objX' object objX = new object(); } }</code>
Sebab ralat:
Contoh kod 2 (berjaya disusun):
<code class="language-c#">public void MyMethod(){ for(int x = 10; x < 20; x++){ int i = x; object objX = new object(); } for(int x = 10; x < 20; x++){ int i = x; object objX = new object(); } }</code>
Sebab kompilasi berjaya:
Dalam Contoh Kod 2, peraturan "pendakap tersirat" gelung mencipta skop berasingan untuk setiap lelaran gelung. Ini bermakna:
Dua contoh kod ini menggambarkan kesan halus skop pembolehubah dalam C# dan kekeliruan yang boleh ditimbulkannya apabila tidak difahami dengan betul.
Atas ialah kandungan terperinci Bagaimanakah Skop Pembolehubah Mempengaruhi Penyusunan dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!