Как я могу клонировать объект DateTime в C#?
Как я могу клонировать объект DateTime в C#?
3 ответа:
DateTime-это тип значения (
struct
)это означает, что следующее создает копию:
DateTime toBeClonedDateTime = DateTime.Now; DateTime cloned = toBeClonedDateTime;
вы также можете спокойно делать такие вещи, как:
var dateReference = new DateTime(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()); } }
обратите внимание, как в последнем примере
myDateTime
объявляется заново в каждом цикле; еслиdateReference
были затронутыAddHours()
илиAddMinutes()
,myDateTime
забрел бы очень быстро - но это не так, потому чтоdateReference
остается на месте:Now at 2018-07-29 0:00 Now at 2018-07-29 0:01 Now at 2018-07-29 0:02 Now at 2018-07-29 0:03 Now at 2018-07-29 0:04 Now at 2018-07-29 0:05 Now at 2018-07-29 0:06 Now at 2018-07-29 0:07 Now at 2018-07-29 0:08 Now at 2018-07-29 0:09 ... Now at 2018-07-29 23:55 Now at 2018-07-29 23:56 Now at 2018-07-29 23:57 Now at 2018-07-29 23:58 Now at 2018-07-29 23:59