2010-11-24 181 views

回答

155

日期时间是一个值类型(struct)。

这意味着下面创建一个副本:

DateTime toBeClonedDateTime = DateTime.Now; 

DateTime cloned = toBeClonedDateTime; 
+9

+1用于指定它是一个结构/值类型。 – 2013-12-24 09:13:17

7

DateTime是一种值类型,因此每次您将它分配给您正在克隆的新变量。

DateTime foo = DateTime.Now; 
DateTime clone = foo; 
19
var original = new DateTime(2010, 11, 24); 
var clone = original; 

DateTime是值类型,所以当你分配给它,你也克隆它。也就是说,克隆它是没有意义的,因为它是不可改变的;通常情况下,如果您打算更改其中一个副本,您只会克隆一些东西。

+0

+1同意。我解决这个问题的方式是创建一个新的DateTime对象,并从原始的日期时间对象中复制我想克隆的所需部分,例如(日,月,年),然后手动为新对象设置时间。 .. 举个例子。 – Dal 2010-11-24 11:15:20