C# Structuren Begrijpen: Hoe Waardetypen te Definiëren en Gebruiken
In C# is een structuur (struct) een waardetype. Het laat je toe gerelateerde data van verschillende typen in één variabele te bundelen.
Structuren worden gebruikt om een record weer te geven. Bijv. boeken in een bibliotheek:
- Titel
- Auteur
- Onderwerp
- Boek ID
Een Structuur Definiëren
Met de struct-statement:
struct Boeken {
public string titel;
public string auteur;
public string onderwerp;
public int boek_id;
};
Voorbeeld: Structuur gebruiken
using System;
struct Boeken {
public string titel;
public string auteur;
public string onderwerp;
public int boek_id;
}
public class TestStructuur {
public static void Main(string[] args) {
Boeken Boek1, Boek2;
Boek1.titel = "C Programmeren";
Boek1.auteur = "Nuha Ali";
Boek1.onderwerp = "C Programmeren Tutorial";
Boek1.boek_id = 6495407;
Boek2.titel = "Telecom Facturatie";
Boek2.auteur = "Zara Ali";
Boek2.onderwerp = "Telecom Facturatie Tutorial";
Boek2.boek_id = 6495700;
Console.WriteLine("Boek 1 titel: {0}", Boek1.titel);
Console.WriteLine("Boek 1 auteur: {0}", Boek1.auteur);
Console.WriteLine("Boek 1 onderwerp: {0}", Boek1.onderwerp);
Console.WriteLine("Boek 1 ID: {0}", Boek1.boek_id);
Console.WriteLine("Boek 2 titel: {0}", Boek2.titel);
Console.WriteLine("Boek 2 auteur: {0}", Boek2.auteur);
Console.WriteLine("Boek 2 onderwerp: {0}", Boek2.onderwerp);
Console.WriteLine("Boek 2 ID: {0}", Boek2.boek_id);
Console.ReadKey();
}
}
Uitvoer toont beide boeken met hun gegevens.
Kenmerken van C# Structuren
- Kunnen methodes, velden, indexers, properties, operatoren, events hebben.
- Kunnen gedefinieerde constructors hebben, maar geen destructors. Geen default constructor mogelijk (wordt automatisch aangemaakt).
- Kunnen geen andere structuren of klassen erven.
- Kunnen niet als basis dienen voor andere structuren/klassen.
- Kunnen interfaces implementeren.
- Leden mogen niet
abstract,virtualofprotectedzijn. - Met
newwordt constructor aangeroepen. Zondernewblijven velden ongeïnitialiseerd en is het object onbruikbaar tot alle velden ingesteld zijn.
Klasse vs Structuur
- Klassen = referentietypen, structuren = waardetypen.
- Structuren ondersteunen geen erfelijkheid.
- Structuren hebben geen default constructor.
Herschreven Voorbeeld (met encapsulatie)
using System;
struct Boeken {
private string titel;
private string auteur;
private string onderwerp;
private int boek_id;
public void StelWaardenIn(string t, string a, string o, int id) {
titel = t; auteur = a; onderwerp = o; boek_id = id;
}
public void Toon() {
Console.WriteLine("Titel: {0}", titel);
Console.WriteLine("Auteur: {0}", auteur);
Console.WriteLine("Onderwerp: {0}", onderwerp);
Console.WriteLine("Boek_id: {0}", boek_id);
}
}
public class TestStructuur {
public static void Main(string[] args) {
Boeken Boek1 = new Boeken();
Boeken Boek2 = new Boeken();
Boek1.StelWaardenIn("C Programmeren", "Nuha Ali", "C Programmeren Tutorial", 6495407);
Boek2.StelWaardenIn("Telecom Facturatie", "Zara Ali", "Telecom Facturatie Tutorial", 6495700);
Boek1.Toon();
Boek2.Toon();
Console.ReadKey();
}
}
C Taal
- Data-opslag Gerevolutioneerd: Next-Generation Magnetische Nanostructuren Met Onzichtbaarheidsmantels
- Top 17 programmeerboeken om uw coderingsvaardigheden in 2021 te verbeteren
- Onderdelen Verbeteren met 3D-Geprinte Roosterstructuren
- C++ Structuren vs Classes: Een praktische gids voor embedded-ontwikkelaars
- Semaphores in Nucleus RTOS: Utility Services & Datastructuren
- Boekrecensie: Digitaliseer of Sterf – Een blauwdruk voor IoT-gedreven transformatie
- Menselijkheid behouden in het tijdperk van disruptieve technologie
- C-structuren: Complexe data efficiënt organiseren
- C typedef: Code vereenvoudigen met eigen typenamen
- C++ Datastructuren: Efficiënte Programma's Bouwen met Arrays, Structs en Meer
- Java Data Structures: Kernklassen & Collections Framework Verkend