從MSDN documentation對於FileInfo.Name
屬性,我發現該屬性的數據在第一次被調用時被緩存,並且僅在隨後通過使用Refresh
方法進行更新。在C#中緩存FileInfo屬性
我有,我無法找到或不是太清晰的文檔中的以下問題:
是對在同一時間緩存的所有屬性數據?
正所謂上創建
FileInfo
的Refresh
方法,或者只有當一個屬性被稱爲是第一次?如果我調用了一個屬性,例如
Name
財產,並且它被稱爲Refresh
,將調用不同的財產,例如,DirectoryName
屬性,第一次導致它再次調用Refresh
,或者它只被整個類中訪問的第一個屬性調用(請參閱問題#1)?我可以通過手動調用
Refresh
預先緩存所有屬性嗎? (假設在構建物體時沒有預緩存)是否手動調用
Refresh
會導致屬性爲pre-cached,例如,CreationTime
,以及更新?
我建議你下載ILSpy http://wiki.sharpdevelop.net/ILSpy.ashx和檢查FileInfo的實現。這是獲得BCL類型內部詳細問題答案的最佳方式。 – bentayloruk 2011-06-13 19:22:29
我同意。同樣值得注意的是,現在(就像今天這樣),您可以在線瀏覽參考源。這是[FileInfo的定義](http://referencesource.microsoft.com/#mscorlib/system/io/fileinfo.cs,4ee673c1a4ecad41),它的所有榮耀。 – 2016-03-07 09:32:41