C # тип ссылки на строку?

Я знаю, что "строка" в C # это ссылочный тип. Это на MSDN. Однако этот код не работает так, как должен:

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";
    }
}

Вывод должен быть «перед передачей» "после прохождения" поскольку я передаю строку в качестве параметра и являюсь ссылочным типом, второй оператор вывода должен распознавать, что текст изменился в методе TestI. Тем не менее, я получаю "до прохождения" & quot; перед прохождением & quot; создавая впечатление, что оно передается по значению, а не по ссылке. Я понимаю, что строки являются неизменяемыми, но я не вижу, как это могло бы объяснить, что здесь происходит. Что мне не хватает? Благодарю.

Ответы на вопрос(10)

Ваш ответ на вопрос