Referenz- und Wertetypen

In C# gibt es Referenz und Wertetypen. Diese sind wichtig zu unterscheiden, damit wir grundlegende Konzepte verstehen könnnen. Klassen in C# sind Referenztypen, während primitive Typen, wie Integers, Doubles und Booleans 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);

Zuletzt aktualisiert

War das hilfreich?