DateTime field read only
本问题已经有最佳答案,请猛点这里访问。
为什么不能为.NET日期时间属性赋值?能够做以下事情会很有用:
1 2 | DateTime saveNow = DateTime.Now; saveNow.Second = 0; //Error, it does not compile |
试试这个:
1 | DateTime saveNow = DateTime.Now; |
1 | saveNow = saveNow.AddSeconds(-savenow.Second); |
因为它们是访问器属性,所以是只读的。
1 2 3 | DateTime now = DateTime.Now; DateTime saveNow = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0); |
我总结了@slaks和@gabe所说的:
datetime是一个结构(不是类),可变结构是错误的做法。在这里查看详细信息为什么可变结构是邪恶的?
因此,日期时间按设计是不可变的。
要将日期时间"秒"字段设置为0,可以使用以下代码:
1 2 3 | DateTime now = DateTime.Now; DateTime saveNow = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0); |