【发布时间】:2013-01-09 09:34:58
【问题描述】:
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# 中所有值都是按值传递的?”。
简而言之,如何保存MethodSample1中“TestString”的值?
(我遇到了这个问题,因为我所有的项目都基于一个界面)
即使保留了价值,它也会反映!奇怪!
【问题讨论】:
-
这不是我几分钟前刚读到的同一个问题吗?
标签: c# .net visual-studio-2010 .net-4.0