Maison  >  Article  >  développement back-end  >  Classe statique en C#

Classe statique en C#

王林
王林original
2024-09-03 15:32:301189parcourir

Une classe statique est une classe que nous ne pouvons pas instancier. Le seul et le plus important objectif de la classe statique est de fournir les plans des classes héritées. Il est créé à l’aide du mot-clé « static » en C#. La classe statique contient uniquement des membres statiques. Nous ne pouvons pas créer l'objet pour la classe statique. Dans cette rubrique, nous allons découvrir la classe statique en C#.

Membres statiques

La classe statique en C# se compose de deux types de statiques qui sont illustrés ci-dessous :

1. Membres de données statiques

Les données membres statiques sont déclarées à l'aide du mot-clé static puisque la classe statique contient toujours les données membres statiques. Ils sont également directement accessibles en utilisant le nom de la classe. La mémoire des données membres statiques est allouée individuellement quelle que soit sa relation avec l'objet.

Syntaxe :

static class NameOfClass
{
public static name_of_datamember;
}

Exemple :

public class Vehicle
{
public static int Wheels = 4;
public static int GasTank
{
get
{
return 23;
}
}
public static void move() { }
public static event EventType RunOutOfGas;
// Extra non-static fields as well as properties
}

Ils sont initialisés avant le premier accès au membre statique et avant le constructeur statique s'il est appelé. Pour y accéder, on utilise le nom de la classe plutôt qu'un nom de variable.

2. Méthodes statiques

L'utilisation du mot-clé static déclare les méthodes statiques puisque la classe static contient toujours des méthodes statiques. Ces méthodes peuvent accéder uniquement aux données membres statiques et ne peuvent pas accéder aux données membres non statiques.

Syntaxe :

static class name_of_class
{
public static name_of_method()
{
// code
}
}

Exemples de classe statique en C#

Voici les exemples suivants mentionnés ci-dessous

Exemple n°1

Code :

/*
* C# Program to Check whether the Entered Number is Even or Odd
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace check1
{
class EvenAndOdd
{
static void Main(string[] args)
{
int i;
if (4 % 2 == 0) // You can enter any number you wish to check for even / odd
{
Console.Write("Entered Number is an Even Number");
Console.Read();
}
else
{
Console.Write("Entered Number is an Odd Number");
Console.Read();
}
}
}
}

Sortie :

Classe statique en C#

Exemple n°2

Code :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public static class ABC {
// declaration of static Method
static void details()
{
Console.Write("Static Method of the class ABC is");
}
}
// Inheritance of the class ABC which would give an error since static
// class cannot be inherited
class ABC2 : ABC
{
public static void Main(String[] args)
{
}
}

Sortie :

Classe statique en C#

Explication : Dans le premier exemple, il existe une classe statique nommée Book en utilisant le mot-clé static. La classe Book  se compose de données membres statiques qui sont name, l et t, ainsi que d'une méthode statique nommée specs(). Cette méthode de la classe statique est appelée en utilisant le nom de la classe, c'est-à-dire Book. spécifications();. Puisque nous savons déjà que la classe statique n'est pas constituée d'objets, les données membres de la classe Book sont donc accessibles en utilisant son nom de classe, c'est-à-dire Book.name, Book. l et Book.t.

Constructeurs statiques

Les constructeurs statiques sont fondamentalement utiles dans l'initialisation des données membres statiques, par rapport au constructeur normal, c'est-à-dire le constructeur non statique qui est utile dans l'initialisation des données membres non statiques.

Caractéristiques/Règles :

  1. Ils ne peuvent avoir aucun des modificateurs d'accès.
  2. Ils ne peuvent pas être définis avec des arguments.
  3. Ils n'ont pas accès aux données membres non statiques.

Allocation de mémoire pour les éléments statiques

Vous devez savoir que les composants de base de la mémoire de l'application sont le tas et la pile. Une zone spéciale à l’intérieur du tas est appelée tas haute fréquence dans laquelle les membres statiques sont stockés. Les membres statiques qui appartiennent également à des classes non statiques sont stockés dans un tas, puis partagés entre toutes les instances de la classe. Par conséquent, les modifications apportées par une instance sont reflétées dans toutes les autres instances.

Comme vous devez déjà le savoir, le membre statique ne peut contenir que d'autres membres statiques puisque les membres statiques sont invoqués quelle que soit la création d'une instance. Désormais, ils ne peuvent pas accéder aux membres non statiques.

Avantages de la classe statique en C#

  1. Nous obtiendrons une erreur si vous, nous, l'un des membres en tant que membre non statique.
  2. Encore une fois, une erreur de compilation est générée si nous essayons de créer une instance dans une classe statique, car les membres statiques sont accessibles directement avec leur nom de classe.
  3. Le mot-clé static est utilisé avant le mot-clé class dans la définition de classe pour déclarer une classe statique.
  4. Les membres de la classe statique sont accessibles par le nom de la classe suivi du nom du membre.

Conclusion

  • Nous ne pouvons pas instancier les classes statiques en utilisant le nouveau mot-clé
  • Les éléments statiques ont uniquement la possibilité d'accéder à d'autres éléments statiques. Considérez que la classe statique ne contient que des membres statiques comme des variables, des méthodes, etc.
  • Une méthode statique ne contient que des variables statiques et ne peut également accéder qu'au reste des éléments statiques.
  • Les éléments statiques ont la capacité de partager des ressources entre plusieurs utilisateurs.
  • Nous ne pouvons pas utiliser static avec des indexeurs, des destructeurs ou des types autres que les classes.
  • De plus, un constructeur statique dans la classe non statique ne s'exécutera qu'une seule fois lorsque la classe sera instanciée pour la première fois.
  • De plus, un constructeur statique présent dans la classe statique ne s'exécutera qu'une seule fois lors du premier accès à l'un des membres statiques.
  • Les membres statiques sont alloués dans une zone de mémoire à haute fréquence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Vue Grille de données C#Article suivant:Vue Grille de données C#