Heim  >  Artikel  >  Backend-Entwicklung  >  [C#-Tutorial] C#-Struktur (Struktur)

[C#-Tutorial] C#-Struktur (Struktur)

黄舟
黄舟Original
2016-12-26 14:34:591038Durchsuche

C#-Struktur (Struct)

In C# ist Struktur eine Datenstruktur vom Typ Wert. Es ermöglicht einer einzelnen Variablen, zusammengehörige Daten verschiedener Datentypen zu speichern. Das Schlüsselwort struct wird zum Erstellen von Strukturen verwendet. Die Struktur

wird zur Darstellung eines Datensatzes verwendet. Angenommen, Sie möchten die Bewegung von Büchern in Ihrer Bibliothek verfolgen. Möglicherweise möchten Sie die folgenden Eigenschaften für jedes Buch verfolgen:

Titel

Autor

Betreff

Buch-ID

Struktur definieren

Um eine Struktur zu definieren, müssen Sie die struct-Anweisung verwenden. Die Strukturanweisung definiert einen neuen Datentyp mit mehreren Mitgliedern für das Programm.

Zum Beispiel können Sie die Buchstruktur wie folgt deklarieren:

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

Das folgende Programm demonstriert die Verwendung der Struktur:

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();

   }
}

Wenn der obige Code Wenn es kompiliert und ausgeführt wird, werden die folgenden Ergebnisse erzeugt:

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

Merkmale von C#-Strukturen

Sie haben eine einfache Struktur namens Books verwendet. Strukturen in C# unterscheiden sich von Strukturen in herkömmlichem C oder C++. Strukturen in C# haben die folgenden Eigenschaften:

Strukturen können Methoden, Felder, Indizes, Eigenschaften, Operatormethoden und Ereignisse haben. Die Struktur

kann Konstruktoren definieren, jedoch keine Destruktoren. Sie können jedoch keinen Standardkonstruktor für eine Struktur definieren. Der Standardkonstruktor wird automatisch definiert und kann nicht geändert werden.

Im Gegensatz zu Klassen können Strukturen keine anderen Strukturen oder Klassen erben. Die

-Struktur kann nicht als Basisstruktur für andere Strukturen oder Klassen verwendet werden. Die Struktur

kann eine oder mehrere Schnittstellen implementieren.

Strukturmitglieder können nicht als abstrakt, virtuell oder geschützt angegeben werden.

Wenn Sie ein Strukturobjekt mit dem New-Operator erstellen, wird der entsprechende Konstruktor aufgerufen, um die Struktur zu erstellen. Im Gegensatz zu Klassen können Strukturen ohne Verwendung des New-Operators instanziiert werden.

Wenn der New-Operator nicht verwendet wird, werden die Felder zugewiesen und das Objekt wird erst verwendet, nachdem alle Felder initialisiert wurden.

Klasse vs. Struktur

Klassen und Strukturen weisen die folgenden grundlegenden Unterschiede auf:

Klassen sind Referenztypen und Strukturen sind Werttypen.

Strukturen unterstützen keine Vererbung.

Strukturen können keinen Standardkonstruktor deklarieren.

Als Antwort auf die obige Diskussion schreiben wir das vorherige Beispiel neu:

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();

   }
}

Wenn der obige Code kompiliert und ausgeführt wird, werden die folgenden Ergebnisse erzeugt:

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

Das Obige ist der Inhalt von [C# Tutorial] C# Structure (Struct) Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn