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";
}
}
문자열을 매개 변수로 전달하고 참조 유형이므로 출력은 "전달 전" "전달 후"여야합니다. 두 번째 출력 명령문은 TestI 메소드에서 텍스트가 변경되었음을 인식해야합니다. 그러나, 나는 "통과하기 전에" "통과하기 전에"가 ref가 아닌 값으로 전달되는 것처럼 보입니다. 나는 문자열이 변경 불가능하다는 것을 알고 있지만 여기서 무슨 일이 일어나고 있는지 설명하지 못합니다. 내가 무엇을 놓치고 있습니까? 감사.