Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Mot-clé statique C#

Mot clé statique C#

Dans ce didacticiel, nous allons découvrir le mot clé statique en C# à l'aide d'exemples.

En C#, si on utilise un static mot-clé avec des membres de classe, alors il y aura une seule copie du type membre.

De plus, tous les objets de la classe partagent une seule copie au lieu de créer des copies individuelles.

Variables statiques C#

Si une variable est déclarée static , nous pouvons accéder à la variable en utilisant le nom de la classe. Par exemple,

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

Sortie

Department: Computer Science

Dans l'exemple ci-dessus, nous avons créé une variable statique nommée department . Comme la variable est statique, nous avons utilisé le nom de classe Student pour accéder à la variable.

Variables statiques et variables d'instance

En C#, chaque objet d'une classe aura sa propre copie de variables d'instance. Par exemple,

class Student {

  // instance variable
  public string studentName;
 }

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

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

Ici, les deux objets s1 et s2 aura des copies séparées de la variable studentName . Et, ils sont différents les uns des autres.

Cependant, si nous déclarons une variable statique, tous les objets de la classe partagent la même variable statique. Et, nous n'avons pas besoin de créer des objets de la classe pour accéder aux variables statiques.

Exemple :C# Variable statique Vs. Variable d'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();
    }
  }
}

Sortie

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

Dans le programme ci-dessus, la classe Student a une variable non statique nommée studentName et une variable statique nommée schoolName .

À l'intérieur du programme classe,

  • s1.studentName / s2.studentName - appelle la variable non statique à l'aide des objets s1 et s2 respectivement
  • Student.schoolName - appelle la variable statique en utilisant le nom de la classe

Depuis le schoolName est le même pour tous les élèves, il est bon de faire le schoolName statique. Cela économise de la mémoire et rend le programme plus efficace.

Méthodes statiques C#

Tout comme les variables statiques, nous pouvons appeler les méthodes statiques en utilisant le nom de la classe.

class Test {

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

}

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

    Test.display();
  }
}

Ici, nous avons accédé à la méthode statique directement depuis Programme classes en utilisant le nom de la classe.

Lorsque nous déclarons une méthode statique, tous les objets de la classe partagent la même méthode statique.

Exemple :méthodes C# statiques et non statiques

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

Sortie

Non static method
Static method

Dans le programme ci-dessus, nous avons déclaré une méthode non statique nommée display1() et une méthode statique nommée display2() à l'intérieur de la classe Test .

Dans la classe Program,

  • t1.display1() - accéder à la méthode non statique en utilisant s1 objet
  • Test.display2() - accéder à la méthode statique en utilisant le nom de classe Test

Remarque :En C#, le Main méthode est statique. Ainsi, nous pouvons l'appeler sans créer l'objet.

Classe statique C#

En C #, lorsque nous déclarons une classe comme statique, nous ne pouvons pas créer d'objets de la classe. Par exemple,

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

Dans l'exemple ci-dessus, nous avons une classe statique Test . Nous avons créé un objet t1 de la classe Test .

Comme nous ne pouvons pas créer un objet de la classe statique, nous obtenons l'erreur suivante :

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

Notez que le champ et la méthode de la classe statique sont également statiques car nous ne pouvons avoir que des membres statiques à l'intérieur de la classe statique.

Remarque :Nous ne pouvons pas hériter d'une classe statique en C#. Par exemple,

static class A {
  ...
}

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

Accéder aux membres statiques du cours

Si nous accédons aux variables statiques et aux méthodes à l'intérieur de la même classe, nous pouvons y accéder directement sans utiliser le nom de la classe. Par exemple,

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

Sortie

25
Static method

Ici, nous accédons au champ statique age et méthode statique display() sans utiliser le nom de la classe.


Langue C

  1. Classe et objet C#
  2. Modificateurs d'accès C#
  3. C# ce mot-clé
  4. Classe abstraite et méthode C#
  5. Classe imbriquée C#
  6. Classe partielle C# et méthode partielle
  7. Classe et méthode scellées C#
  8. Variable statique en Java :Qu'est-ce qu'un bloc statique et une méthode [Exemple]
  9. Polymorphisme en C++