如何避免在c#中更改对象?

时间:2013-10-19 11:10:51

标签: c# datetime reference

我有类似的对象:

DateTime a;
DateTime b;
DateTime c;

如果我做:

b=a;

然后:

b=c;

我的a等于c
我知道这是动态对象,我已经参考了它们。但我不想绑定它们。我怎么能避免这个?如何在不同时b=c;的情况下制作a=c;

1 个答案:

答案 0 :(得分:3)

DateTimestruct,这意味着它是值类型。

请参阅以下示例:

void Main()
{
    DateTime a = new DateTime(2005, 05, 05);
    DateTime b = a;

    Console.WriteLine (a);
    Console.WriteLine (b);

    a = new DateTime(2012, 05, 05);
    Console.WriteLine (a);
    Console.WriteLine (b);
}

输出:

  

2005年5月5日0:00:00
  5/05/2005 0:00:00

     

5/05/2012 0:00:00
  5/05/2005 0:00:00

通常可以通过实施定义Clone方法的ICloneable来完成(在不同的情况下)。