如何通过VALUE设置类的两个实例彼此相等
本文关键字:实例 两个 VALUE 何通过 设置 | 更新日期: 2023-09-27 18:09:49
我希望能够设置一个类的一个实例等于另一个BY VALUE。也就是说,我不想改变一个实例中的属性,并有变化出现在另一个。而且不能是STRUCT
给定这些类:
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; }
}
如果你运行这个,它将(应该)输出'2'。那不是我需要的。我仍然需要打印'1'。它不能是struct
谢谢。
编辑
我不能只做:
var x = new FT();
x.Name = this.Name;
因为最终我将轻松拥有100个属性和变量。和做:
x.propertyName = this.propertyName;
100次,是非常低效的
Write
ft= new FT ();
在将value更改为2之前
你可以尝试这样做:
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;
}
}