📚
Lerndokumentationen
.NET
.NET
  • Willkommen
  • C#
    • Variablen
      • Strings
      • Integers
      • Floats und Doubles
      • Booleans
      • Casting und Parsing
    • Kontrollstrukturen
      • if-Statements
      • Ternary-Operator
      • Switch-Statements und -Expressions
    • Collections
      • Arrays
      • Lists
      • Dictionaries
    • Loops
      • while-Loops
      • for-Loops
      • foreach-Loops
      • continue und break
    • Methoden
      • Callbacks und Delegates
      • Extension Methods
      • Lazy
    • Objektorientierte Programmierung
      • Fields und Properties
      • Methoden
      • Statisch vs. Instanzen
      • Konstruktoren
      • Vererbung
      • Komposition
      • Generics
      • Tupel
    • Referenz- und Wertetypen
      • Enums
      • Structs
      • Records
    • Binary und Strings
      • Kodierung von Strings und Bytes
      • Streams
      • XML und JSON
  • Design Patterns
    • Creational Patterns
      • Singleton
    • Structural Patterns
      • Decorator Pattern
    • Behavioral Patterns
      • Memento
      • Strategy
Bereitgestellt von GitBook
Auf dieser Seite
  1. C#
  2. Referenz- und Wertetypen

Structs

Structs sind ähnlich wie Klassen, sind jedoch Wertetypen.

public struct Point
{
    public int X { get; set; };
    public int Y { get; set; };
    
    public Point(int x, int y)
    {
        X = x;
        Y = y;
    }
    
    public void Move(int dx, int dy) 
    {
        X += dx;
        Y += dy;
    }
}

Anders als bei einer Klasse ist der parameterlose Konstruktor immer noch vorhanden, auch wenn ein anderer Konstruktor vorhanden ist.

Unterschiede zu Klassen

Der grösste Unterschied zwischen Structs und Klassen ist, dass ein Struct ein Wertetyp und eine Klasse ein Referenztyp ist.

  • Der Struct wird auf dem Stack gespeichert, während die Klasse im Heap gespeichert wird

  • Ein Struct wird kopiert wenn er als Argument übergeben wird, eine Klasse wird als Referenz übergeben

VorherigeEnumsNächsteRecords

Zuletzt aktualisiert vor 1 Monat