Comprendre les structures en C# : définition et utilisation des types valeur
En C#, une structure (struct) est un type valeur. Elle permet de regrouper des données liées de types différents dans une seule variable.
Les structures représentent souvent un enregistrement (record). Exemple : suivi de livres dans une bibliothèque avec Titre, Auteur, Sujet, ID.
Définition d'une structure
Utilisez l'instruction struct :
struct Livre
{
public string titre;
public string auteur;
public string sujet;
public int id_livre;
}
Exemple d'utilisation
using System;
struct Livre
{
public string titre;
public string auteur;
public string sujet;
public int id_livre;
}
public class TestStructure
{
public static void Main(string[] args)
{
Livre livre1;
Livre livre2;
// Livre 1
livre1.titre = "Programmation C";
livre1.auteur = "Nuha Ali";
livre1.sujet = "Tutoriel C";
livre1.id_livre = 6495407;
// Livre 2
livre2.titre = "Facturation Telecom";
livre2.auteur = "Zara Ali";
livre2.sujet = "Tutoriel Telecom";
livre2.id_livre = 6495700;
// Affichage
Console.WriteLine("Livre 1 - Titre : {0}", livre1.titre);
Console.WriteLine("Livre 1 - Auteur : {0}", livre1.auteur);
Console.WriteLine("Livre 1 - Sujet : {0}", livre1.sujet);
Console.WriteLine("Livre 1 - ID : {0}", livre1.id_livre);
Console.WriteLine("Livre 2 - Titre : {0}", livre2.titre);
Console.WriteLine("Livre 2 - Auteur : {0}", livre2.auteur);
Console.WriteLine("Livre 2 - Sujet : {0}", livre2.sujet);
Console.WriteLine("Livre 2 - ID : {0}", livre2.id_livre);
Console.ReadKey();
}
}
Caractéristiques des structures C#
- Peuvent avoir méthodes, champs, indexeurs, propriétés, opérateurs, événements
- Peuvent avoir constructeurs définis, mais pas destructeurs. Pas de constructeur par défaut personnalisable
- Ne supportent pas l'héritage (ni héritage de structure, ni classe de base)
- Ne peuvent pas servir de base à d'autres structures ou classes
- Peuvent implémenter une ou plusieurs interfaces
- Membres ne peuvent pas être
abstract,virtual, ouprotected - Instanciation sans
newpossible (champs non initialisés jusqu'à assignation complète)
Classe vs Structure
- Classes = types référence ; Structures = types valeur
- Structures : pas d'héritage
- Structures : pas de constructeur par défaut personnalisable
Exemple avec méthodes et encapsulation
using System;
struct Livre
{
private string titre;
private string auteur;
private string sujet;
private int id_livre;
public void DefinirValeurs(string t, string a, string s, int id)
{
titre = t; auteur = a; sujet = s; id_livre = id;
}
public void Afficher()
{
Console.WriteLine("Titre : {0}", titre);
Console.WriteLine("Auteur : {0}", auteur);
Console.WriteLine("Sujet : {0}", sujet);
Console.WriteLine("ID : {0}", id_livre);
}
}
public class TestStructure
{
public static void Main(string[] args)
{
Livre livre1 = new Livre();
Livre livre2 = new Livre();
livre1.DefinirValeurs("Programmation C", "Nuha Ali", "Tutoriel C", 6495407);
livre2.DefinirValeurs("Facturation Telecom", "Zara Ali", "Tutoriel Telecom", 6495700);
livre1.Afficher();
livre2.Afficher();
Console.ReadKey();
}
}
Langue C
- Structures C++ vs Classes : guide pratique pour développeurs embarqués
- Sémaphores dans Nucleus RTOS : Services utilitaires et structures de données
- Critique de livre : Digitalisez ou mourez — Blueprint pour la transformation pilotée par l'IoT
- Préserver l'humanité à l'ère de la technologie disruptive
- Révolution du stockage de données : nanostructures magnétiques de nouvelle génération avec capes d'invisibilité
- Top 17 des livres de programmation pour améliorer vos compétences en codage en 2021
- Structures de données Java : Exploration des classes de base et Collections Framework
- Maîtriser les structures en C : Organiser des données complexes efficacement
- Typedef en C : Simplifier votre code avec des noms de types personnalisés