📚
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#

Referenz- und Wertetypen

VorherigeTupelNächsteEnums

Zuletzt aktualisiert vor 1 Monat

In C# gibt es Referenz und Wertetypen. Diese sind wichtig zu unterscheiden, damit wir grundlegende Konzepte verstehen könnnen. in C# sind Referenztypen, während primitive Typen, wie , und Wertetypen sind.

Wenn wir also eine Methode haben, welche bspw. eine Liste, also einen Refenztyp annimmt, dann verändern wir genau die Liste, die wir beim Aufruf als Argument mitgeben.

List<string> names = new List<string>();

void AddToList(List<string> list)
{
    list.add("Levin");
    list.add("Nick");
}

AddToList(names);

Wenn wir jedoch eine Methode haben, die einen Werttyp annimmt, dann wird der Wert vom Argument nur kopiert.

string text = "Hello, World!";

void EditText(string text)
{
    text = "Goodbye, World!";
}

EditText(text);

ref

Um nun einen Wertetypen als Referenztypen zu übergeben können wir das Keyword ref nutzen.

string text = "Hello, World!";

void EditText(ref string text)
{
    text = "Goodbye, World!";
}

EditText(ref text);

Integers
Doubles
Booleans
Klassen