次のコードはどのように機能しますか?
public void SomeMethod()
{
StringBuilder sb = new StringBuilder();
AppendFoo(sb);
String foo = sb.ToString(); // foo is "foo"
String s = String.Empty;
AppendBar(s);
String bar = s; // bar is empty
}
public void AppendFoo(StringBuilder x)
{
x.Append("Foo");
}
public void AppendBar(String x)
{
x = x + "Bar";
}
StringBuilder
との両方String
が参照型である場合、メソッドを介して渡すときに文字列オブジェクトが変更されないのはなぜですか? メソッドへの両方のパラメーターが参照型をパラメーターとして取っているためAppendBar
、StringBuilder オブジェクトはメソッドに渡すときに変更されます。AppendFoo