[c#] C #에서 DateTime 개체를 어떻게 복제 할 수 있습니까?

C #에서 DateTime 개체를 어떻게 복제 할 수 있습니까?



답변

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()myDateTimedateReference

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


답변

var original = new DateTime(2010, 11, 24);
var clone = original;

DateTime값 유형이므로 할당 할 때도 복제합니다. 즉, 변경이 불가능하기 때문에 복제 할 필요가 없습니다. 일반적으로 복사본 중 하나를 변경하려는 의도가있는 경우에만 무언가를 복제합니다.


답변

DateTime은 값 유형이므로 복제 할 새 변수에 할당 할 때마다합니다.

DateTime foo = DateTime.Now;
DateTime clone = foo;


답변