var dateReference =newDateTime(2018,7,29);for(var h =0; h <24; h++){for(var m =0; m <60; m++){var myDateTime = dateReference.AddHours(h).AddMinutes(m);Console.WriteLine("Now at "+ myDateTime.ToShortDateString()+" "+ myDateTime.ToShortTimeString());}}
Observe como no último exemplo myDateTimeé declarado novamente a cada ciclo; se dateReferencetivesse sido afetado por AddHours()ou AddMinutes(), myDateTimeteria se afastado muito rápido - mas não é, porque dateReferencefica parado:
Now at 2018-07-290:00Now at 2018-07-290:01Now at 2018-07-290:02Now at 2018-07-290:03Now at 2018-07-290:04Now at 2018-07-290:05Now at 2018-07-290:06Now at 2018-07-290:07Now at 2018-07-290:08Now at 2018-07-290:09...Now at 2018-07-2923:55Now at 2018-07-2923:56Now at 2018-07-2923:57Now at 2018-07-2923:58Now at 2018-07-2923:59
var original =newDateTime(2010,11,24);var clone = original;
DateTimeé um tipo de valor, portanto, ao atribuí-lo, você também o clona. Dito isso, não há sentido em cloná-lo porque é imutável; normalmente, você só clonaria algo se tivesse a intenção de alterar uma das cópias.
+1 aprovado. A maneira como eu contornei o problema foi criar um novo objeto DateTime e apenas copiar as partes necessárias que eu queria clonar, como (dia, mês, ano) do objeto datetime original e, em seguida, definir a hora manualmente para o novo objeto. .. como um exemplo.
Dal
12
DateTime é um tipo de valor, portanto, toda vez que você o atribui a uma nova variável, você está clonando.
DateTime
, é imutável.Respostas:
DateTime é um tipo de valor (
struct
)Isso significa que o seguinte cria uma cópia:
Você também pode fazer coisas com segurança como:
Observe como no último exemplo
myDateTime
é declarado novamente a cada ciclo; sedateReference
tivesse sido afetado porAddHours()
ouAddMinutes()
,myDateTime
teria se afastado muito rápido - mas não é, porquedateReference
fica parado:fonte
DateTime
é um tipo de valor, portanto, ao atribuí-lo, você também o clona. Dito isso, não há sentido em cloná-lo porque é imutável; normalmente, você só clonaria algo se tivesse a intenção de alterar uma das cópias.fonte
DateTime é um tipo de valor, portanto, toda vez que você o atribui a uma nova variável, você está clonando.
fonte