如何通过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次,是非常低效的

如何通过VALUE设置类的两个实例彼此相等

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;
    }
}