Comment utiliser const, readonly et static en C #

Les mots-clés const, readonly et static sont souvent utilisés lors de la programmation en C #. Cependant, bien que ces mots clés présentent des différences importantes, ils présentent également des similitudes qui rendent parfois difficile de savoir quand utiliser lequel. Cet article décrit les mots clés const, static et readonly en C #, comment ils se comparent et comment nous devons les utiliser dans nos applications C #.

Pour utiliser les exemples de code fournis dans cet article, vous devez disposer de Visual Studio 2019 installé sur votre système. Si vous n'en avez pas déjà une copie, vous pouvez télécharger Visual Studio 2019 ici. 

Créer un projet d'application console dans Visual Studio 2019

Tout d'abord, créons un projet d'application console .NET Core dans Visual Studio. En supposant que Visual Studio 2019 est installé sur votre système, suivez les étapes décrites ci-dessous pour créer un nouveau projet d'application console .NET Core dans Visual Studio.

  1. Lancez l'IDE de Visual Studio.
  2. Cliquez sur "Créer un nouveau projet".
  3. Dans la fenêtre «Créer un nouveau projet», sélectionnez «Application console (.NET Core)» dans la liste des modèles affichés.
  4. Cliquez sur Suivant.
  5. Dans la fenêtre «Configurer votre nouveau projet» ci-dessous, spécifiez le nom et l'emplacement du nouveau projet.
  6. Cliquez sur Créer.

Cela créera un nouveau projet d'application console .NET Core dans Visual Studio 2019. Nous utiliserons ce projet pour illustrer l'utilisation des mots clés const, readonly et static en C # dans les sections suivantes de cet article.

Utilisez le mot clé const en C #

Le mot clé const (read: constant) en C # est utilisé pour définir une variable constante, c'est-à-dire une variable dont la valeur ne changera pas pendant la durée de vie du programme. Il est donc impératif d'attribuer une valeur à une variable constante au moment de sa déclaration.

Cette valeur d'une variable constante est également appelée valeur «à la compilation». Les variables déclarées à l'aide du mot-clé const sont également appelées constantes à la compilation. Il est à noter qu'une variable constante est immuable, c'est-à-dire que la valeur attribuée à une variable constante ne peut pas être modifiée ultérieurement.

L'extrait de code suivant illustre comment vous pouvez définir une constante de compilation à l'aide du mot clé const en C #.

const string connectionString = "Spécifiez ici votre chaîne de connexion à la base de données.";

Notez que vous devez attribuer une valeur à une variable constante au moment où vous la définissez. Notez également que vous ne pouvez pas utiliser le mot-clé const pour créer un objet constant. Le mot clé const ne peut être appliqué qu'aux types de données primitifs (tels que les entiers, les flottants, les caractères et les booléens) et les chaînes. Comprenons l'utilisation de const avec un exemple.

Considérez la classe suivante nommée Author. Nous ne donnerons à la classe Author que quelques propriétés pour la rendre simple.

public class Auteur

    {

        public int Id {get; ensemble; }

        chaîne publique FirstName {get; ensemble; }

        chaîne publique LastName {get; ensemble; }

        chaîne publique Address {get; ensemble; }

    }

Maintenant, si vous essayez de créer un objet constant de la classe Author à l'aide du mot-clé const, vous observerez l'erreur de compilation illustrée dans la figure 1 ci-dessous.

Cette erreur indique que le côté droit de l'opérateur d'affectation doit avoir une valeur constante pour satisfaire l'expression. Étant donné que l'instruction new Author()n'est pas une constante, l'affectation n'est pas valide et donc l'erreur.

Utilisez le mot clé readonly en C #

Le mot clé readonly peut être utilisé pour définir une variable ou un objet en lecture seule. Cela signifie que la variable ou l'objet peut se voir attribuer une valeur au niveau de la portée de la classe ou dans un constructeur uniquement. Vous ne pouvez pas modifier la valeur ou réaffecter une valeur à une variable ou un objet en lecture seule dans une autre méthode, à l'exception du constructeur.

Comprenons cela avec un exemple. Considérez la classe suivante nommée DbManager.

classe publique DbManager

    {

        chaîne publique en lecture seule connectionString =

        "Spécifiez ici votre chaîne de connexion à la base de données.";

        public DbManager ()

        {

            connectionString = "Vous pouvez réaffecter une valeur ici.";

        }

        public void ReAssign ()

        {

            connectionString = "Ceci n'est pas autorisé";

        }

    }

Le code ci-dessus ne sera pas compilé et vous serez présenté avec l'erreur indiquée dans la figure 2.

Utilisez le mot clé static en C #

Le mot-clé static en C # peut être utilisé sur une variable, une méthode ou un objet. Notez qu'un membre statique d'une classe appartient au type de l'objet plutôt qu'à l'instance du type. En d'autres termes, les membres statiques sont accessibles avec le nom de la classe, et non le nom d'une instance. 

Considérez la classe suivante nommée Utility qui contient une méthode statique.

Utilitaire de classe publique

    {

        public static void SomeMethod ()

        {

            // Écrivez votre code ici

        }

    }

Vous ne pouvez pas appeler la méthode à l' SomeMethod()aide d'une instance de la classe Utility. Vous devez plutôt appeler cette méthode en utilisant la syntaxe suivante.

Utility.SomeMethod ();

La même règle s'applique pour une variable statique ou un objet statique. Vous pouvez faire référence à un membre statique d'une classe uniquement en utilisant la syntaxe ci-dessous.

ClassName . Membre;

Ou

ClassName . Membre();

Un constructeur d'une classe peut être statique. Un constructeur statique d'une classe est utilisé pour initialiser les membres statiques de la classe. Cependant, un constructeur statique d'une classe ne peut pas accepter de paramètres.

Une règle pour const, readonly et static

Voici la règle empirique que vous pouvez suivre lorsque vous travaillez avec les mots-clés const, readonly et static. Utilisez le mot-clé const lorsque la valeur contenue dans une variable ne changera jamais pendant la durée de vie de l'application. Utilisez le mot clé readonly lorsque vous ne savez pas si la valeur d'une variable d'un objet doit changer mais que vous voulez empêcher d'autres classes de changer la valeur. Utilisez le mot clé static lorsque vous souhaitez que le membre d'une classe appartienne au type plutôt qu'à l'instance du type.

Comment faire plus en C #:

  • Comment utiliser les annotations de données en C #
  • Comment travailler avec les GUID en C # 8
  • Quand utiliser une classe abstraite ou une interface en C #
  • Comment travailler avec AutoMapper en C #
  • Comment utiliser les expressions lambda en C #
  • Comment travailler avec les délégués Action, Func et Predicate en C #
  • Comment travailler avec des délégués en C #
  • Comment implémenter un simple logger en C #
  • Comment travailler avec des attributs en C #
  • Comment travailler avec log4net en C #
  • Comment implémenter le modèle de conception de référentiel en C #
  • Comment travailler avec la réflexion en C #
  • Comment travailler avec Filesystemwatcher en C #
  • Comment effectuer une initialisation différée en C #
  • Comment travailler avec MSMQ en C #
  • Comment travailler avec des méthodes d'extension en C #
  • Comment utiliser les expressions lambda en C #
  • Quand utiliser le mot clé volatile en C #
  • Comment utiliser le mot clé yield en C #
  • Comment implémenter le polymorphisme en C #
  • Comment créer votre propre planificateur de tâches en C #
  • Comment travailler avec RabbitMQ en C #
  • Comment travailler avec un tuple en C #
  • Explorer les méthodes virtuelles et abstraites en C #
  • Comment utiliser l'ORM Dapper en C #
  • Comment utiliser le modèle de conception de poids mouche en C #