Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

Statisches C#-Schlüsselwort

Statisches C#-Schlüsselwort

In diesem Tutorial lernen wir das Schlüsselwort static in C# anhand von Beispielen kennen.

In C#, wenn wir einen static verwenden Schlüsselwort mit Klassenmembern, dann gibt es eine einzelne Kopie des Typmembers.

Und alle Objekte der Klasse teilen sich eine einzelne Kopie, anstatt einzelne Kopien zu erstellen.


Statische C#-Variablen

Wenn eine Variable deklariert ist static , können wir über den Klassennamen auf die Variable zugreifen. Zum Beispiel

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();
    }
  }
}

Ausgabe

Department: Computer Science

Im obigen Beispiel haben wir eine statische Variable mit dem Namen department erstellt . Da die Variable statisch ist, haben wir den Klassennamen Student verwendet um auf die Variable zuzugreifen.


Statische Variablen vs. Instanzvariablen

In C# hat jedes Objekt einer Klasse seine eigene Kopie von Instanzvariablen. Zum Beispiel

class Student {

  // instance variable
  public string studentName;
 }

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

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

Hier sind die beiden Objekte s1 und s2 wird separate Kopien der Variablen studentName haben . Und sie unterscheiden sich voneinander.

Wenn wir jedoch eine Variable als statisch deklarieren, teilen sich alle Objekte der Klasse dieselbe statische Variable. Und wir müssen keine Objekte der Klasse erstellen, um auf die statischen Variablen zuzugreifen.

Beispiel:Statische C#-Variable vs. Instanzvariable

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();
    }
  }
}

Ausgabe

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

Im obigen Programm hat die Student-Klasse eine nicht statische Variable namens studentName und eine statische Variable namens schoolName .

Innerhalb des Programms Klasse,

Da der schoolName für alle Schüler gleich ist, ist es gut den schoolName zu machen statisch. Es spart Speicherplatz und macht das Programm effizienter.


Statische C#-Methoden

Genau wie statische Variablen können wir die statischen Methoden mit dem Klassennamen aufrufen.

class Test {

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

}

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

    Test.display();
  }
}

Hier haben wir direkt aus Program auf die statische Methode zugegriffen Klassen mit dem Klassennamen.

Wenn wir eine Methode als statisch deklarieren, teilen sich alle Objekte der Klasse dieselbe statische Methode.

Beispiel:Statische und nicht statische C#-Methoden

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();
    }
  }
}

Ausgabe

Non static method
Static method

Im obigen Programm haben wir eine nicht statische Methode namens display1() deklariert und eine statische Methode namens display2() innerhalb der Klasse Test .

Innerhalb der Program-Klasse

Hinweis :In C# die Main Methode ist statisch. Wir können es also aufrufen, ohne das Objekt zu erstellen.


Statische C#-Klasse

Wenn wir in C# eine Klasse als statisch deklarieren, können wir keine Objekte der Klasse erstellen. Zum Beispiel

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();
    }
  }
}

Im obigen Beispiel haben wir eine statische Klasse Test . Wir haben ein Objekt t1 erstellt der Klasse Test .

Da wir kein Objekt der statischen Klasse erstellen können, erhalten wir die folgende Fehlermeldung:

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

Beachten Sie, dass das Feld und die Methode der statischen Klasse ebenfalls statisch sind, da wir nur statische Mitglieder innerhalb der statischen Klasse haben können.

Hinweis :Wir können keine statische Klasse in C# erben. Zum Beispiel

static class A {
  ...
}

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

Zugriff auf statische Mitglieder innerhalb der Klasse

Wenn wir auf die statischen Variablen und Methoden innerhalb derselben Klasse zugreifen, können wir direkt darauf zugreifen, ohne den Klassennamen zu verwenden. Zum Beispiel

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();
    }
  }
}

Ausgabe

25
Static method

Hier greifen wir auf das statische Feld age zu und statische Methode display() ohne den Klassennamen zu verwenden.


C Sprache

  1. C#-Klasse und -Objekt
  2. C#-Zugriffsmodifikatoren
  3. C# dieses Schlüsselwort
  4. Abstrakte C#-Klasse und -Methode
  5. Verschachtelte C#-Klasse
  6. C# Teilklasse und Teilmethode
  7. Versiegelte C#-Klasse und -Methode
  8. Statische Variable in Java:Was ist statischer Block &Methode [Beispiel]
  9. Polymorphismus in C++
  10. Datenabstraktion in C++