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

Bagaimanakah Skop Pembolehubah Mempengaruhi Penyusunan dalam C#?

DDD
Lepaskan: 2025-01-12 14:09:44
asal
665 orang telah melayarinya

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):

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();
    }
}
Salin selepas log masuk

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):

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();
    }
}
Salin selepas log masuk

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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan