如何通过VALUE c#设置类的两个实例相等

时间:2016-10-02 14:13:39

标签: c#

我希望能够将一个类的一个实例设置为另一个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次,非常低效。

2 个答案:

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