Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C# Lingkup Variabel

Cakupan Variabel C#

Dalam tutorial ini, Anda akan belajar tentang cakupan variabel dalam C# dengan bantuan contoh.

Cakupan variabel mengacu pada ketersediaan variabel di bagian kode tertentu.

Dalam C#, sebuah variabel memiliki tiga jenis ruang lingkup:


Cakupan Variabel Tingkat Kelas C#

Dalam C#, ketika kita mendeklarasikan variabel di dalam kelas, variabel tersebut dapat diakses di dalam kelas. Ini dikenal sebagai cakupan variabel tingkat kelas .

Variabel tingkat kelas dikenal sebagai bidang dan mereka dideklarasikan di luar metode, konstruktor, dan blok kelas. Misalnya,

using System;
namespace VariableScope {
  class Program {

    // class level variable
    string str = "Class Level";

    public void display() {
      Console.WriteLine(str);
    }

    static void Main(string[] args) {
      Program ps = new Program();
      ps.display();

      Console.ReadLine();
    }
  }
}

Keluaran

Class Level

Pada contoh di atas, kita telah menginisialisasi sebuah variabel bernama str di dalam Program kelas.

Karena ini adalah variabel tingkat kelas, kita dapat mengaksesnya dari metode yang ada di dalam kelas.

public void display() {
  Console.WriteLine(str);
}

Ini karena variabel tingkat kelas dapat diakses di seluruh kelas.

Catatan :Kami tidak dapat mengakses variabel tingkat kelas melalui metode statis. Misalnya, kita memiliki metode statis di dalam Program kelas.

static void display2() {

  // Access class level variable
  // Cause an Error
  Console.WriteLine(str);
}

Cakupan Variabel Tingkat Metode

Saat kita mendeklarasikan variabel di dalam metode, variabel tersebut tidak dapat diakses di luar metode. Ini dikenal sebagai cakupan variabel tingkat metode . Misalnya,

using System;

namespace VariableScope {
  class Program {

    public void method1() {
      // display variable inside method
      string str = "method level";
    }

    public void method2() {

      // accessing str from method2()
      Console.WriteLine(str);
    }

    static void Main(string[] args) {
      Program ps = new Program();
      ps.method2();

      Console.ReadLine();
    }
  }
}

Pada contoh di atas, kita telah membuat sebuah variabel bernama str di dalam method1() .

// Inside method1()
string str = "method level";

Di sini, str adalah variabel tingkat metode. Jadi, tidak bisa diakses di luar method1() .

Namun, ketika kami mencoba mengakses str variabel dari method2()

// Inside method2
Console.WriteLine(str);  // Error code

kami mendapatkan kesalahan.

Error   CS0103     The name 'str' does not exist in the current context  

Ini karena variabel level metode memiliki cakupan di dalam metode tempat mereka dibuat. Misalnya,

using System;
namespace VariableScope {
  class Program {

    public void display() {
     string str = "inside method";

      // accessing method level variable
      Console.WriteLine(str);
    }

    static void Main(string[] args) {
    Program ps = new Program();
    ps.display();

    Console.ReadLine();
    }
  }
}

Keluaran

inside method

Di sini, kami telah membuat str variabel dan mengaksesnya dalam metode yang sama display() . Oleh karena itu, kode berjalan tanpa kesalahan.


Cakupan Variabel Tingkat Blok di C#

Saat kita mendeklarasikan variabel di dalam blok (for loop, while loop, if..else), variabel hanya dapat diakses di dalam blok. Ini dikenal sebagai cakupan variabel tingkat blok . Misalnya,

using System;

namespace VariableScope {
  class Program {
    public void display() {

      for(int i=0;i<=3;i++) {
        	 
      }
    Console.WriteLine(i);
    }

    static void Main(string[] args) {
      Program ps = new Program();
      ps.display();

      Console.ReadLine();
    }
  }
}

Dalam program di atas, kita telah menginisialisasi variabel level blok i di dalam for lingkaran.

for(int i=0;i<=3;i++) {
       	 
}

Sejak i adalah variabel level blok, ketika kita mencoba mengakses variabel di luar for lingkaran,

// Outside for loop
Console.WriteLine(i);

kami mendapatkan kesalahan.

Error	 CS0103  The name 'i' does not exist in the current context

Bahasa C

  1. Kata Kunci Global Python
  2. C++ Pointer dengan Contoh
  3. Variabel C, Tipe Data, Konstanta
  4. Tugas Verilog
  5. Pemodelan Tingkat Gerbang
  6. Lingkup Skala Waktu Verilog
  7. Java - Tipe Variabel
  8. C - Variabel
  9. C - Aturan Lingkup
  10. C - Pointer