Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Skop Pembolehubah Mempengaruhi Penyusunan dalam C#?

Bagaimanakah Skop Pembolehubah Mempengaruhi Penyusunan dalam C#?

DDD
DDDasal
2025-01-12 14:09:44627semak imbas

How Does Variable Scope Affect Compilation in C#?

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:

  • Mata 1: Dua pembolehubah tempatan bernama 'i' diisytiharkan dalam blok kod yang sama (badan gelung). C# tidak membenarkan pengisytiharan pendua dengan nama yang sama dalam skop yang sama.
  • Mata 2: Satu lagi pembolehubah tempatan bernama 'objX' diisytiharkan dalam skop yang sama dengan pembolehubah sebelumnya dengan nama yang sama, melanggar "peraturan pengenalan" dalam C#. Peraturan ini menyatakan bahawa dalam blok kod, nama ringkas mesti sentiasa merujuk kepada entiti yang sama.

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 pembolehubah bernama 'i' diisytiharkan dalam skop berbeza (lelaran gelung yang berbeza), dengan itu mengelakkan ralat pengisytiharan pendua.
  • Dua pembolehubah bernama 'objX' juga diisytiharkan dalam skop berbeza, memenuhi "peraturan pengenalan", membenarkan penyusunan berjaya.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn