我希望能够将一个类的一个实例设置为另一个BY VALUE。 I.E.我不想在一个实例中更改属性并在另一个实例中显示更改。而 CAN'是一个结构
鉴于这些课程:
class Main(string args[]) {
Dictionary<string, FT> dic = new Dictionary<string, FT>();
FT ft = new FT();
ft.Name = "1";
dic.Add("a", ft);
ft.Name = "2";
Console.WriteLine(dic["a"].Name);
Console.ReadKey();
}
class FT {
public string Name { get; set; }
}
如果你运行它,它将(应该)打印输出&#39; 2&#39;。这不是我需要的。我还需要打印&#39; 1&#39;。并且它可以是一个结构
感谢。
修改
我不能这样做:
var x = new FT();
x.Name = this.Name;
因为我最终会有100个属性和变量。做:
x.propertyName = this.propertyName;
100次,非常低效。
答案 0 :(得分:1)
写
ft= new FT ();
在将值更改为2之前
答案 1 :(得分:0)
您可以尝试这样的事情:
list.Add( "a", ft.Clone() );
其中Clone()
定义为
class FT {
public string Name { get; set; }
public FT Clone() {
var x = new FT();
x.Name = this.Name;
return x;
}
}