我想了解DateTime
中Now
属性的实现是如何工作的。我的背景主要是Python和Haskell,所以我不能理解Now
属性如何根据您何时使用它来“返回”不同的值。C#:DateTime.Now如何只是一个属性?
我的直觉认为Now
应该是一个函数,它会执行一些低级魔法,然后是一些高级魔法,然后返回具有正确时间的DateTime对象。
我想了解DateTime
中Now
属性的实现是如何工作的。我的背景主要是Python和Haskell,所以我不能理解Now
属性如何根据您何时使用它来“返回”不同的值。C#:DateTime.Now如何只是一个属性?
我的直觉认为Now
应该是一个函数,它会执行一些低级魔法,然后是一些高级魔法,然后返回具有正确时间的DateTime对象。
DateTime.Now不是一个属性,它是一个静态只读属性。
在封面下面,readonly属性只是一个返回值的函数调用,所以它可以执行任何数量的处理。
希望这会有所帮助。
当然,我应该考虑一下!谢谢。 – 2009-10-23 11:43:29
是的,'DateTime.Today','DateTime.UtcNow'也一样, – 2009-10-23 11:44:48
它不是一个属性,它是在DateTime类,看起来像下面这样的静态属性:
public static DateTime Now
{
get
{
return UtcNow.ToLocalTime();
}
}
UtcNow是DateTime的另一个属性,返回如下:
return new DateTime((ulong) ((GetSystemTimeAsFileTime() +
0x701ce1722770000L) | 0x4000000000000000L));
GetSystemTimeAsFileTime是一个Windows API调用。
它是违反约定的框架中为数不多的地方之一(如果不是唯一的地方)... – Will 2009-10-23 12:27:49