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

C# Kata Kunci statis

Kata Kunci statis C#

Dalam tutorial ini, kita akan belajar tentang kata kunci static di C# dengan bantuan contoh.

Dalam C#, jika kita menggunakan static kata kunci dengan anggota kelas, maka akan ada satu salinan dari jenis anggota.

Dan, semua objek kelas berbagi satu salinan alih-alih membuat salinan individual.


Variabel Statis C#

Jika sebuah variabel dideklarasikan static , kita dapat mengakses variabel menggunakan nama kelas. Misalnya,

using System;

namespace StaticKeyword {

  class Student {

    // static variable
    public static string department = "Computer Science";
  }

  class Program {
    static void Main(string[] argos) {
    
      // access static variable
      Console.WriteLine("Department: " + Student.department);
     
      Console.ReadLine();
    }
  }
}

Keluaran

Department: Computer Science

Pada contoh di atas, kami telah membuat variabel statis bernama department . Karena variabelnya statis, kami menggunakan nama kelas Student untuk mengakses variabel.


Variabel Statis Vs Variabel Instance

Dalam C#, setiap objek kelas akan memiliki salinan variabel instannya sendiri. Misalnya,

class Student {

  // instance variable
  public string studentName;
 }

class Program {
  static void Main(string[] args) {

    Student s1 = new Student();
    Student s2 = new Student();
  }
}

Di sini, kedua objek s1 dan s2 akan memiliki salinan terpisah dari variabel studentName . Dan, mereka berbeda satu sama lain.

Namun, jika kita mendeklarasikan variabel statis, semua objek kelas berbagi variabel statis yang sama. Dan, kita tidak perlu membuat objek kelas untuk mengakses variabel statis.

Contoh:C# Variabel Statis Vs. Variabel Instance

using System;
 
namespace StaticKeyword {
 
  class Student {
    static public string schoolName = "Programiz School";
    public string studentName;
 
  }
 
    class Program {
    static void Main(string[] args) {
       
      Student s1 = new Student();
      s1.studentName = "Ram";

      // calls instance variable
      Console.WriteLine("Name: " + s1.studentName);
      // calls static variable
      Console.WriteLine("School: " + Student.schoolName);
 
      Student s2 = new Student();
      s2.studentName = "Shyam";
   
       // calls instance variable
      Console.WriteLine("Name: " + s2.studentName);
      // calls static variable
      Console.WriteLine("School: " + Student.schoolName);
      
      Console.ReadLine();
    }
  }
}

Keluaran

Name: Ram
School: Programiz School
Name: Shyam
School: Programiz School

Dalam program di atas, kelas Siswa memiliki variabel non-statis bernama namasiswa dan variabel statis bernama schoolName .

Di dalam Program kelas,

Sejak schoolName sama untuk semua siswa, ada baiknya membuat schoolName statis. Ini menghemat memori dan membuat program lebih efisien.


Metode Statis C#

Sama seperti variabel statis, kita dapat memanggil metode statis menggunakan nama kelas.

class Test {

  public static void display() {....}

}

class Program {
  static void Main(string[] args) {

    Test.display();
  }
}

Di sini, kami telah mengakses metode statis langsung dari Program kelas menggunakan nama kelas.

Saat kita mendeklarasikan metode statis, semua objek kelas berbagi metode statis yang sama.

Contoh:Metode C# Statis dan Non-statis

using System;
 
namespace StaticKeyword {
 
  class Test {
 
    public void display1() {
 
      Console.WriteLine("Non static method");
    }
    public static void display2() {
 
      Console.WriteLine("Static method");
    }
  }
 
  class Program {
    static void Main(string[] args) {
 
      Test t1 = new Test();
      t1.display1();
      Test.display2();    
      Console.ReadLine();
    }
  }
}

Keluaran

Non static method
Static method

Dalam program di atas, kami telah mendeklarasikan metode non-statis bernama display1() dan metode statis bernama display2() di dalam kelas Uji .

Di dalam kelas Program,

Catatan :Dalam C#, Utama metodenya statis. Jadi, kita bisa memanggilnya tanpa membuat objek.


Kelas Statis C#

Dalam C#, ketika kita mendeklarasikan sebuah kelas sebagai statis, kita tidak dapat membuat objek dari kelas tersebut. Misalnya,

using System;

namespace StaticKeyword {

  static class Test {
    static int a = 5;
    static void display() {

      Console.WriteLine("Static method");
    }
  
    static void Main(string[] args) {

      // creating object of Test
      Test t1 = new Test();
      Console.WriteLine(a);
      display();
    }
  }
}

Dalam contoh di atas, kita memiliki kelas statis Test . Kami telah membuat objek t1 dari kelas Uji .

Karena kami tidak dapat membuat objek dari kelas statis, kami mendapatkan kesalahan berikut:

error CS0723: Cannot declare a variable of static type 'Test' 
error CS0712: Cannot create an instance of the static class

Perhatikan bahwa bidang dan metode kelas statis juga statis karena kita hanya dapat memiliki anggota statis di dalam kelas statis.

Catatan :Kami tidak dapat mewarisi kelas statis di C#. Misalnya,

static class A {
  ...
}

// Error Code
class B : A {
  ...
}

Mengakses Anggota statis dalam Kelas

Jika kita mengakses variabel dan metode statis di dalam kelas yang sama, kita dapat langsung mengaksesnya tanpa menggunakan nama kelas. Misalnya,

using System;
 
namespace StaticKeyword {
 
  class Test {
 
    static int age = 25;
    public static void display() {
 
      Console.WriteLine("Static method");
    }
   
    static void Main(string[] args) {
 
      Console.WriteLine(age);
      display();
      Console.ReadLine();
    }
  }
}

Keluaran

25
Static method

Di sini, kami mengakses bidang statis usia dan metode statis display() tanpa menggunakan nama kelas.


Bahasa C

  1. C# Kelas dan Objek
  2. C# Akses Pengubah
  3. C# Kata Kunci ini
  4. C# kelas abstrak dan metode
  5. C# Kelas Bersarang
  6. C# Kelas Parsial dan Metode Parsial
  7. C# kelas dan metode tersegel
  8. Variabel Statis di Java:Apa itu Static Block &Method [Contoh]
  9. Polimorfisme dalam C++
  10. Abstraksi Data dalam C++