我有一個是這樣的一個屬性:是否值得緩存成員結構?
DateTime MinDate
{
get { return new DateTime(2005, 3, 25); }
}
我擔心的是調用Derived.MinDate
將構建它被稱爲新DateTime
每一次,所以我希望有一個潛在的_MinDate
即只構造一旦。
private readonly DateTime _MinDate = new DateTime(2005, 3, 25);
DateTime MinDate
{
get { return _MinDate; }
}
但這並不產生任何影響可言,因爲DateTime
是一個結構反正? 場景1:MinDate
構造一個新的DateTime
,然後將其複製到調用者。 情景2:_MinDate
被複制到MinDate
,它被複制到調用者。這兩種情況同樣無效,對嗎?
您是否期望使數百萬這些對象? –
不,第二個例子效率更高,因爲JIT將內聯屬性獲取器,從而消除第二個複製操作。 – Dai