- Autor

- Name
- Nelson Silva
- Social
Einführung
Die Sprache C# ist reich an Typen und bietet Programmierern eine breite Palette von Werkzeugen zur Problemlösung. Zu diesen Werkzeugen gehören Strukturen (structs), die besonders nützlich sind, um leichtgewichtige Objekte mit Wertsemantik darzustellen.
- Was ist eine Struktur (struct)?
- Strukturen vs Klassen
- Wann sollte man eine struct verwenden?
- Praktisches Beispiel
Was ist eine Struktur (struct)?
In C# ist eine struct ein Werttyp, der dazu dient, kleine Mengen zusammengehöriger Daten zu kapseln. Aufgrund ihrer Natur als Werttyp belegt sie direkt Speicherplatz, vermeidet Heap-Allokationen und ist daher in bestimmten Situationen schneller als Klassen.
Strukturen vs Klassen
Unterschiede zwischen structs und Klassen:
- Zuweisungstyp: Während eine
structein Werttyp ist, ist eine Klasse ein Referenztyp. Dieser grundlegende Unterschied bestimmt das Verhalten bei verschiedenen Operationen, insbesondere bei der Zuweisung und Parameterübergabe. - Vererbung:
structsunterstützen keine Vererbung, außer der Implementierung von Interfaces. - Konstruktoren: Eine
structkann keinen parameterlosen Konstruktor haben. Sie kann jedoch parametrisierte Konstruktoren besitzen. - Destruktoren:
structskönnen keine Destruktoren haben. Destruktoren werden in Klassen verwendet, um notwendige Bereinigungen vorzunehmen, bevor ein Objekt vom Garbage Collector eingesammelt wird. - Zugriffsmodifizierer: Der Modifizierer
protectedhat in einerstructkeine Bedeutung, da sie keine Vererbung unterstützen.
Wann sollte man eine struct verwenden?
structs sind ideal in Situationen, in denen:
- Die Instanz klein ist und Wertsemantik hat.
- Heap-Allokationen vermieden werden sollen.
- Das Objekt einen einzelnen logischen Wert darstellt, wie eine Zahl oder einen Datenpunkt.
Praktisches Beispiel
Hier ist ein Beispiel einer struct im Einsatz:
using System;
namespace Base {
class Struct {
public void Run() {
var struktur = new Struktur();
struktur.Zahl = 200;
// Die Zahl muss >= 0 und <= 100 sein.
}
}
struct Struktur : IZahl {
private int zahl;
public int Zahl {
set {
if (value >= 0 && value <= 100) {
zahl = value;
ZahlAusgeben();
}
else
Console.WriteLine("Die Zahl muss >= 0 und <= 100 sein.");
}
}
public void ZahlAusgeben() {
Console.WriteLine($"Zahl: {zahl}");
}
}
interface IZahl {
void ZahlAusgeben();
}
}
Fazit
Die Wahl zwischen einer struct und einer Klasse in C# hängt von den spezifischen Anforderungen deines Projekts ab. Wir hoffen, dass du mit diesem Artikel ein klares Verständnis von Strukturen und ihren sinnvollen Einsatzmöglichkeiten gewonnen hast.