public void MethodSample1(Itest variable)
{
variable.TestString = "some sample data";
Itest var1 = variable;
Console.WriteLine(variable.TestString);
MethodSample2(variable);
Console.WriteLine(variable.TestString);
Console.WriteLine(var1.TestString);
}
public void MethodSample2(Itest variable)
{
variable.TestString = "testdata";
}
public interface Itest
{
string TestString { get; set; }
}
両方のコンソール出力行に「いくつかのサンプル データ」が出力されるTestString
はずですが、新しい値で上書きされているように見えますか? 「C#ではデフォルトですべての値が値渡しされるのですか?」のようではありませんか?
つまり、「TestString」の値を保持する方法はMethodSample1
?
(すべてのプロジェクトが単一のインターフェースに基づいているため、この問題に遭遇しました)
値を保持した後でも反映されます。変!