Я знаю, что "строка" в С# является ссылочным типом. Это на 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. Тем не менее, я получаю" перед прохождением "перед прохождением" заставляя себя казаться, что он передается по значению не по ссылке. Я понимаю, что строки неизменяемы, но я не вижу, как это объясняет, что здесь происходит. Что мне не хватает? Спасибо.