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
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?