Referenztyp für C # -Strings?

Ich weiß, dass "Zeichenfolge" in C # ein Referenztyp ist. Dies ist auf MSDN. Dieser Code funktioniert jedoch nicht so, wie er sollte:

class Test
{
    public static void Main()
    {
        string test = "before passing";
        Console.WriteLine(test);
        TestI(test);
        Console.WriteLine(test);
    }

    public static void TestI(string test)
    {
        test = "after passing";
    }
}

Die Ausgabe sollte "vor dem Übergeben" "nach dem Übergeben" sein, da ich die Zeichenfolge als Parameter übergebe und es sich um einen Referenztyp handelt. Die zweite Ausgabeanweisung sollte erkennen, dass sich der Text in der TestI-Methode geändert hat. Ich erhalte jedoch "vor dem Bestehen" "vor dem Bestehen", was den Anschein erweckt, dass es sich um einen Wert handelt, der nicht als ref bezeichnet wird. Ich verstehe, dass Saiten unveränderlich sind, aber ich verstehe nicht, wie das erklären würde, was hier vor sich geht. Was vermisse ich? Vielen Dank.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage