DateTime字段只读

时间:2013-06-10 15:47:28

标签: .net datetime

为什么.Net DateTime属性无法分配给?能够做以下事情会很有用:

DateTime saveNow = DateTime.Now;
saveNow.Second = 0; //Error, it does not compile

3 个答案:

答案 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);