Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C# - Structuren

In C# is een structuur een gegevenstype van het waardetype. Het helpt u om een ​​enkele variabele gerelateerde gegevens van verschillende gegevenstypen te laten bevatten. De structuur trefwoord wordt gebruikt voor het maken van een structuur.

Structuren worden gebruikt om een ​​record weer te geven. Stel dat u uw boeken in een bibliotheek wilt bijhouden. Misschien wilt u de volgende kenmerken van elk boek bijhouden −

  • Titel
  • Auteur
  • Onderwerp
  • Boek-ID

Een structuur definiëren

Om een ​​structuur te definiëren, moet u de instructie struct gebruiken. De struc-instructie definieert een nieuw gegevenstype, met meer dan één lid voor uw programma.

Dit is bijvoorbeeld de manier waarop u de Boekstructuur kunt declareren −

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

Het volgende programma toont het gebruik van de structuur −

Live demo
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;   /* 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();
   }
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

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

Kenmerken van C#-structuren

U hebt al een eenvoudige structuur met de naam Boeken gebruikt. Structuren in C# zijn heel anders dan die in traditionele C of C++. De C#-structuren hebben de volgende kenmerken −

  • Structuren kunnen methoden, velden, indexeerders, eigenschappen, operatormethoden en gebeurtenissen hebben.

  • Structuren kunnen gedefinieerde constructors hebben, maar geen destructors. U kunt echter geen standaardconstructor voor een structuur definiëren. De standaardconstructor wordt automatisch gedefinieerd en kan niet worden gewijzigd.

  • In tegenstelling tot klassen kunnen structuren geen andere structuren of klassen erven.

  • Structuren kunnen niet worden gebruikt als basis voor andere structuren of klassen.

  • Een structuur kan een of meer interfaces implementeren.

  • Structuurelementen kunnen niet worden gespecificeerd als abstract, virtueel of beschermd.

  • Wanneer u een struct-object maakt met de Nieuwe operator, wordt het gemaakt en wordt de juiste constructor aangeroepen. In tegenstelling tot klassen kunnen structs worden geïnstantieerd zonder de operator Nieuw te gebruiken.

  • Als de operator Nieuw niet wordt gebruikt, blijven de velden niet toegewezen en kan het object pas worden gebruikt als alle velden zijn geïnitialiseerd.

Klasse versus structuur

Klassen en structuren hebben de volgende basisverschillen −

  • klassen zijn referentietypes en structs zijn waardetypes
  • structuren ondersteunen geen overerving
  • structuren kunnen geen standaardconstructor hebben

Laten we in het licht van de bovenstaande discussies het vorige voorbeeld herschrijven −

Live demo
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();   /* 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();
   }
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

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

C Taal

  1. Structuren en klassen in C++
  2. Semaphores:nutsvoorzieningen en datastructuren
  3. Boekrecensie:Digitaliseer of sterf
  4. Een zeer menselijke toekomst
  5. Nieuwe generatie magnetische gegevensopslagtechnologie
  6. 17 beste programmeerboeken om te lezen in 2021
  7. Java - Gegevensstructuren
  8. C - Structuren
  9. C - typedef
  10. C++-gegevensstructuren
  11. Hoe 3D-geprinte roosterstructuren onderdelen kunnen verbeteren