为什么.Net DateTime属性无法分配给?能够做以下事情会很有用:
DateTime saveNow = DateTime.Now;
saveNow.Second = 0; //Error, it does not compile
答案 0 :(得分:1)
因为它们是存取器属性,因此只读。
DateTime now = DateTime.Now;
DateTime saveNow
= new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0);
答案 1 :(得分:1)
试试这个:
DateTime saveNow = DateTime.Now;
<德尔> saveNow.AddSeconds(-savenow.Second);
德尔>
AddSeconds
不会更改值,它会返回具有新值的新实例。这个版本有效:
saveNow = saveNow.AddSeconds(-savenow.Second);
答案 2 :(得分:0)
我总结了@SLaks和@Gabe说的话:
DateTime是一个结构(不是类),可变结构是不好的做法。点击此处查看详细信息Why are mutable structs evil?
因此,DateTime在设计上并不可变。
要将DateTime“秒”字段设置为0,您可以使用以下代码:
DateTime now = DateTime.Now;
DateTime saveNow
= new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0);