Maison  >  Article  >  développement back-end  >  [Tutoriel C#] Structure C# (Struct)

[Tutoriel C#] Structure C# (Struct)

黄舟
黄舟original
2016-12-26 14:34:591041parcourir

Structure C# (Struct)

En C#, la structure est une structure de données de type valeur. Il permet à une seule variable de stocker des données associées de différents types de données. Le mot-clé struct est utilisé pour créer des structures. La structure

est utilisée pour représenter un enregistrement. Supposons que vous souhaitiez suivre le mouvement des livres dans votre bibliothèque. Vous souhaiterez peut-être garder une trace des propriétés suivantes pour chaque livre :

Titre

Auteur

Sujet

ID du livre

Définir Structure

Afin de définir une structure, vous devez utiliser l'instruction struct. L'instruction struct définit un nouveau type de données avec plusieurs membres pour le programme.

Par exemple, vous pouvez déclarer la structure Book comme suit :

struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};

Le programme suivant démontre l'utilisation de la structure :

using 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;        /* 声明 Book1,类型为 Book */
      Books Book2;        /* 声明 Book2,类型为 Book */

      /* book 1 详述 */
      Book1.title = "C Programming";
      Book1.author = "Nuha Ali"; 
      Book1.subject = "C Programming Tutorial";
      Book1.book_id = 6495407;

      /* book 2 详述 */
      Book2.title = "Telecom Billing";
      Book2.author = "Zara Ali";
      Book2.subject =  "Telecom Billing Tutorial";
      Book2.book_id = 6495700;

      /* 打印 Book1 信息 */
      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);

      /* 打印 Book2 信息 */
      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 is Une fois compilé et exécuté, il produit les résultats suivants :

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

Caractéristiques des structures C#

Vous avez utilisé une structure simple appelée Livres. Les structures en C# sont différentes des structures traditionnelles en C ou C++. Les structures en C# ont les caractéristiques suivantes :

Les structures peuvent avoir des méthodes, des champs, des index, des propriétés, des méthodes d'opérateur et des événements. La structure

peut définir des constructeurs, 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 automatiquement défini et ne peut pas être modifié.

Contrairement aux classes, les structures ne peuvent pas hériter d'autres structures ou classes. La structure

ne peut pas être utilisée comme structure de base pour d'autres structures ou classes. La 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 structure à l'aide de l'opérateur New, le constructeur approprié est appelé pour créer la structure. Contrairement aux classes, les structures peuvent être instanciées sans utiliser l'opérateur New.

Si l'opérateur Nouveau n'est pas utilisé, les champs sont attribués et l'objet n'est utilisé qu'une fois tous les champs initialisés.

Classe vs structure

Les classes et les structures présentent les différences fondamentales suivantes :

Les classes sont des types référence et les structures sont des types valeur.

Les structures ne prennent pas en charge l'héritage. Les structures

ne peuvent pas déclarer de constructeur par défaut.

En réponse à la discussion ci-dessus, réécrivons l'exemple précédent :

using 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(); /* 声明 Book1,类型为 Book */
      Books Book2 = new Books(); /* 声明 Book2,类型为 Book */

      /* book 1 详述 */
      Book1.getValues("C Programming",
      "Nuha Ali", "C Programming Tutorial",6495407);

      /* book 2 详述 */
      Book2.getValues("Telecom Billing",
      "Zara Ali", "Telecom Billing Tutorial", 6495700);

      /* 打印 Book1 信息 */
      Book1.display();

      /* 打印 Book2 信息 */
      Book2.display(); 

      Console.ReadKey();

   }
}

Lorsque le code ci-dessus est compilé et exécuté, il produira les résultats suivants :

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

Ce qui précède est le contenu de [Tutoriel C#] Structure C# (Struct). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn