I. Introduction aux propriétés C# csharp
Dans le précédent tutorial (Créer une classe en C# (CSharp) ) nous avons vu comment créer une instance d’une classe pour pouvoir utiliser l’une de ses méthodes publiques. Il est cependant possible, en qualifiant cette méthode de static, de l’appeler en dehors de toute existence d’objet de la classe. C’est ce qualificatif de static que nous allons aborder dans ce tutorial.
II. Explications
1 – Généralités
Dans le tutorial sur la création de classes nous avions vu que pour pouvoir utiliser une méthode d’une classe il fallait d’abord créer un objet de cette classe :

Message msg = new Message() permet d’instancier un objet de la classe Message. Ensuite seulement nous pouvons appeler la méthode publique Affiche de Message par : msg.Affiche().
La syntaxe dans ce cas est : NomDeLobjet.NomDeLaMéthode ().
Qualifer la méthode Affiche de static va permettre de l’utiliser en dehors de toute création d’objet de la classe Message. La syntaxe devient alors : NomDeLaClasse.NomDeLaMéthode().

Dans cet exemple “Hello word” est affiché par un simple Message.Affiche() dans Main.
Voilà pour les généralités. Quelques précisions maintenant :
2 – Les champs statiques
Un champ statique existe même si aucun objet de la classe n’a été créé. Ainsi dans l’exemple ci-dessous Main appelle le champs statique msg alors qu’aucun objet Message n’existe :

Il est accessible avec la syntaxe NomDeLaClasse.NomDuChamp.
Il peut être modifié ou utilisé par les méthodes de la ou des classes. Dans l’exemple ci-dessous Message.msg=”Coucou” de la méthode Main est valide :

3 – Les méthodes statiques
Une méthode statique existe en dehors de la création d’un objet de la classe.
Elle est appelée par la syntaxe NomDeLaClasse.NomDeLaMéthode() mais ne peut être appelée par NomDeLobjetDeLaClasse.NomDeLaMéthode(). Dans l’exemple ci-dessous :
Message UnMessage = new Message();
UnMessage.Affiche()
génére une erreur de compilation :

Elle n’accède qu’aux champs statiques de sa classe. Le code ci-dessous génére une erreur de compilation :

Elle ne peut appeler qu’une méthode statique (de sa classe ou d’une autre classe). Elle peut par contre être appelée par une méthode non statique de sa classe.
4 – Les Propriétés statiques
Une propriété statique existe en dehors de la création d’un objet de la classe.
Elle est appelée par la syntaxe NomDeLaClasse.NomDeLaPropriété mais ne peut être appelée par NomDeLobjetDeLaClasse.NomDeLaPropriété.
Elle n’accède qu’aux champs statiques de sa classe. Dans le code ci-dessous PropriétéStatique accède à _propriétéstatique car le champ est qualifié de static :

5 – Les classes statiques (nouveauté C# 2)
Une classe statique ne peut comporter que des champs et méthodes statiques.
Elle ne peut servir de classe de base pour l’héritage (nous aborderons cette notion d’héritage dans un autre tutorial).
Enfin elle ne peut être instanciée. Dans le code ci-après Message UnMessage = new Message() génére une erreur de compilation :

III. Conclusion du tutorial
Voilà ce tutorial arrive à sa fin. J’espère qu’il est assez clair et qu’il vous sera utile. A vous de faire bon usage de ce vous venez de lire.
Poster un Commentaire