C# csharp : methodes, proprietes et classes statiques

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 :

tuto csharp methodes proprietes image 1

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().

tuto csharp methodes proprietes image 2

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 :



tuto csharp methodes proprietes image 3

    - 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 :

tuto csharp methodes proprietes image 4

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 :

tuto csharp methodes proprietes image 5

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

tuto csharp methodes proprietes image 6

    - 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 :

tuto csharp methodes proprietes image 7

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 :

tuto csharp methodes proprietes image 8

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.