【发布时间】:2015-01-24 09:47:53
【问题描述】:
我需要将年份添加到 DateTime 变量,但由于某种原因,此函数根本不会影响..
这是我的代码:
DateTime dtCmp = new DateTime(calendarBirthDay.Value.Year, calendarBirthDay.Value.Month, calendarBirthDay.Value.Day);
dtCmp.AddYears(DateTime.Now.Year - calendarBirthDay.Value.Year);
我也尝试过一些微不足道的事情:
dtCmp.AddYears(1);
这还行不通..
【问题讨论】:
-
您期望的实际效果是什么?更改
dtCmp?DateTime是不可变类型。你不能改变它。即使你认为你改变了它,你实际上也创建了一个新实例。 -
如果您真的想了解调用 AddYears 时会发生什么,您应该查看 AddMonths 的源代码(由 AddYears 内部调用)See ReferenceSource
-
MSDN documentation 明确表示:此方法不会更改此 DateTime 对象的值。相反,它返回一个新的 DateTime 对象,其值是此操作的结果。