C# - Structures
En C#, une structure est un type de données de type valeur. Il vous aide à faire en sorte qu'une seule variable contienne des données liées de différents types de données. La structure mot-clé est utilisé pour créer une structure.
Les structures sont utilisées pour représenter un enregistrement. Supposons que vous vouliez garder une trace de vos livres dans une bibliothèque. Vous voudrez peut-être suivre les attributs suivants de chaque livre −
- Titre
- Auteur
- Objet
- Identifiant du livre
Définir une structure
Pour définir une structure, vous devez utiliser l'instruction struct. L'instruction struct définit un nouveau type de données, avec plus d'un membre pour votre programme.
Par exemple, voici comment vous pouvez déclarer la structure Livre −
struct Books { public string title; public string author; public string subject; public int book_id; };
Le programme suivant montre l'utilisation de la structure −
Démo en directusing System; struct Books { public string title; public string author; public string subject; public int book_id; }; public class testStructure { public static void Main(string[] args) { Books Book1; /* Declare Book1 of type Book */ Books Book2; /* Declare Book2 of type Book */ /* book 1 specification */ Book1.title = "C Programming"; Book1.author = "Nuha Ali"; Book1.subject = "C Programming Tutorial"; Book1.book_id = 6495407; /* book 2 specification */ Book2.title = "Telecom Billing"; Book2.author = "Zara Ali"; Book2.subject = "Telecom Billing Tutorial"; Book2.book_id = 6495700; /* print Book1 info */ Console.WriteLine( "Book 1 title : {0}", Book1.title); Console.WriteLine("Book 1 author : {0}", Book1.author); Console.WriteLine("Book 1 subject : {0}", Book1.subject); Console.WriteLine("Book 1 book_id :{0}", Book1.book_id); /* print Book2 info */ Console.WriteLine("Book 2 title : {0}", Book2.title); Console.WriteLine("Book 2 author : {0}", Book2.author); Console.WriteLine("Book 2 subject : {0}", Book2.subject); Console.WriteLine("Book 2 book_id : {0}", Book2.book_id); Console.ReadKey(); } }
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −
Book 1 title : C Programming Book 1 author : Nuha Ali Book 1 subject : C Programming Tutorial Book 1 book_id : 6495407 Book 2 title : Telecom Billing Book 2 author : Zara Ali Book 2 subject : Telecom Billing Tutorial Book 2 book_id : 6495700
Fonctionnalités des structures C#
Vous avez déjà utilisé une structure simple nommée Books. Les structures en C# sont assez différentes de celles en C ou C++ traditionnels. Les structures C# ont les caractéristiques suivantes −
-
Les structures peuvent avoir des méthodes, des champs, des indexeurs, des propriétés, des méthodes d'opérateur et des événements.
-
Les structures peuvent avoir des constructeurs définis, mais pas des destructeurs. Cependant, vous ne pouvez pas définir un constructeur par défaut pour une structure. Le constructeur par défaut est défini automatiquement et ne peut pas être modifié.
-
Contrairement aux classes, les structures ne peuvent pas hériter d'autres structures ou classes.
-
Les structures ne peuvent pas être utilisées comme base pour d'autres structures ou classes.
-
Une structure peut implémenter une ou plusieurs interfaces.
-
Les membres de la structure ne peuvent pas être spécifiés comme abstraits, virtuels ou protégés.
-
Lorsque vous créez un objet struct en utilisant le Nouveau opérateur, il est créé et le constructeur approprié est appelé. Contrairement aux classes, les structures peuvent être instanciées sans utiliser l'opérateur Nouveau.
-
Si l'opérateur Nouveau n'est pas utilisé, les champs restent non affectés et l'objet ne peut pas être utilisé tant que tous les champs ne sont pas initialisés.
Classe contre Structure
Les classes et les structures ont les différences fondamentales suivantes −
- les classes sont des types de référence et les structures sont des types de valeur
- les structures ne prennent pas en charge l'héritage
- les structures ne peuvent pas avoir de constructeur par défaut
À la lumière des discussions ci-dessus, réécrivons l'exemple précédent −
Démo en directusing System; struct Books { private string title; private string author; private string subject; private int book_id; public void getValues(string t, string a, string s, int id) { title = t; author = a; subject = s; book_id = id; } public void display() { Console.WriteLine("Title : {0}", title); Console.WriteLine("Author : {0}", author); Console.WriteLine("Subject : {0}", subject); Console.WriteLine("Book_id :{0}", book_id); } }; public class testStructure { public static void Main(string[] args) { Books Book1 = new Books(); /* Declare Book1 of type Book */ Books Book2 = new Books(); /* Declare Book2 of type Book */ /* book 1 specification */ Book1.getValues("C Programming", "Nuha Ali", "C Programming Tutorial",6495407); /* book 2 specification */ Book2.getValues("Telecom Billing", "Zara Ali", "Telecom Billing Tutorial", 6495700); /* print Book1 info */ Book1.display(); /* print Book2 info */ Book2.display(); Console.ReadKey(); } }
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −
Title : C Programming Author : Nuha Ali Subject : C Programming Tutorial Book_id : 6495407 Title : Telecom Billing Author : Zara Ali Subject : Telecom Billing Tutorial Book_id : 6495700
Langue C
- Structures et classes en C++
- Sémaphores :services utilitaires et structures de données
- Revue de livre :numériser ou mourir
- Un avenir très humain
- Technologie de stockage de données magnétiques de nouvelle génération
- 17 meilleurs livres de programmation à lire en 2021
- Java - Structures de données
- C- Ouvrages
- C - typedef