- Auteur

- Nom
- Nelson Silva
- Social
Introduction
Le langage C# est riche en types, offrant aux programmeurs une grande variété d'outils pour résoudre des problèmes. Parmi ces outils figurent les structures (structs), particulièrement utiles pour représenter des objets légers ayant une sémantique de valeur.
- Qu'est-ce qu'une structure (struct) ?
- Structures vs Classes
- Quand utiliser une struct ?
- Exemple Pratique
Qu'est-ce qu'une structure (struct) ?
En C#, une struct est un type valeur utilisé pour encapsuler de petites quantités de données liées. En raison de sa nature de type valeur, elle occupe directement un espace en mémoire, évitant l'allocation sur le tas (heap), ce qui la rend plus rapide dans certaines circonstances par rapport aux classes.
Structures vs Classes
Différences entre les structs et les classes :
- Type d'affectation : Alors qu'une
structest un type valeur, une classe est un type référence. Cette différence fondamentale détermine le comportement dans diverses opérations, notamment lors de l'affectation et du passage de paramètres. - Héritage : Les
structsne prennent pas en charge l'héritage, à l'exception de l'héritage d'interfaces. - Constructeurs : Une
structne peut pas avoir de constructeur sans paramètres. En revanche, elle peut avoir des constructeurs paramétrés. - Destructeurs : Les
structsne peuvent pas avoir de destructeurs. Les destructeurs sont utilisés dans les classes pour effectuer tout nettoyage nécessaire avant qu'un objet soit collecté par le ramasse-miettes. - Modificateurs d'accès : Le modificateur
protectedn'a pas de sens dans unestruct, car elles ne prennent pas en charge l'héritage.
Quand utiliser une struct ?
Les structs sont idéales dans les situations où :
- L'instance est petite et possède une sémantique de valeur.
- Il est souhaitable d'éviter les allocations sur le tas.
- L'objet représente une seule valeur logique, comme un nombre ou un point de données.
Exemple Pratique
Voici un exemple d'une struct en action :
using System;
namespace Base {
class Struct {
public void Run() {
var structure = new Structure();
structure.Nombre = 200;
// Le nombre doit être >= 0 et <= 100.
}
}
struct Structure : INombre {
private int nombre;
public int Nombre {
set {
if (value >= 0 && value <= 100) {
nombre = value;
AfficherNombre();
}
else
Console.WriteLine("Le nombre doit être >= 0 et <= 100.");
}
}
public void AfficherNombre() {
Console.WriteLine($"Nombre : {nombre}");
}
}
interface INombre {
void AfficherNombre();
}
}
Conclusion
Le choix entre utiliser une struct ou une classe en C# dépend des besoins spécifiques de votre projet. Nous espérons qu'avec cet article vous avez acquis une compréhension claire des structures et de quand elles peuvent être utiles.