Sommaire

Les structures

Les structures sont un héritage des languages C et C++. Dans leurs formes C#, elles ressemblent beaucoup à des classes avec cependant une différence de taille : les structures sont allouées sur la pile contrairement aux classes qui sont allouées sur le tas. Cela a deux conséquences :

  • La durée de vie de la structure est limitée aux accolades qui l’entourent.

  • La structure ne nécessitant pas de gestion mémoire (allocation, garbage collector), elle est très performante pour des entités très petites.

Les structures n’existent pas en Java.

1. Déclaration d’une structure

Syntaxe de déclaration d’une structure

[visibilité] struct nom [:interfaces] {//implémentation } [;]

L’attribut de visibilité d’une structure définie dans un espace de noms peut être de type :

  • public : la structure sera utilisable par tous.

  • internal : la structure sera utilisable par les composants de l’assembly qui l’héberge. 

Les attributs private, protected et protected internal n’ont de sens que pour les structures imbriquées. Une structure imbriquée est une structure définie dans une classe.

Précédée de l’attribut private, la structure imbriquée ne pourra être utilisée que dans sa classe hôte.

Précédée de l’attribut protected, la structure imbriquée ne pourra être utilisée ...