DateTime 구조체는 한 번 생성되면 내부의 값을 수정할 수 없다. 즉, DateTime을 이용하면 그 값의 복사본을 사용하게 된다. DateTime 내 AddDays(), AddHours()는 값을 직접 수정하는 게 아니라 새로운 객체를 생성하여 반환한다.
alarmTime.SetAlarmTime = alarmTime.SetAlarmTime.AddDays(1);
그래서 DateTime의 메서드를 이용하려면 대입 연산자로 값을 지정해주어야 한다.
alarmTime.SetAlarmTime.AddDays(1);
대입 연산자 없이 메서드만 호출한다면 계산은 진행되지만 값을 저장하지는 않는다.
그리고, 구조체는 값 타입이기 때문에 전달될 때마다 메모리에서 복사가 일어난다. 함수에 전달될 때 복사본이 전달되므로 원본은 변하지 않는다. 따라서 대입연산자로 새로운 값을 받아 대입해야 한다.
'언어 > C#' 카테고리의 다른 글
| 랜덤값 출력(Random 클래스) (0) | 2026.01.02 |
|---|---|
| CS5001: Program does not contain a static 'Main' method suitable for an entry point (0) | 2026.01.02 |