C#の "string"は参照型であることを知っています。これは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";
}
}
文字列をパラメーターとして渡し、それが参照型であるため、出力は「受け渡し前」「受け渡し後」になるはずです。2番目の出力ステートメントは、TestIメソッドでテキストが変更されたことを認識します。ただし、「渡される前」「渡される前」が表示されるため、参照ではなく値で渡されているように見えます。文字列は不変であることは理解していますが、ここで何が行われているのかがわかりません。何が欠けていますか?ありがとう。