我想了解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