2010-09-03 44 views
0

我想了解靜態類的效率,因爲我認爲我在這方面的基本思想可能有缺陷。我經常編寫如下的代碼,假設昂貴的反射調用將不太經常發生,因爲私有變量將保存訪問者的信息。我非常確定這是非靜態類和實例屬性的良好習慣,但是在靜態類中使用此構造還是有什麼好處,或者是否需要在每次調用公共訪問器時實例化私有字段?靜態類和效率

using System.Reflection; 
public static class ApplicationInformation 
{ 
    public static Assembly ExecutingAssembly 
    { 
     get { return executingAssembly ?? (executingAssembly = Assembly.GetExecutingAssembly()); } 
    } 
    private static Assembly executingAssembly; 
} 

回答

2

爲什麼每次調用都會被實例化?這是一個靜態字段,只要AppDomain一樣,它就會「活着」,就像任何其他靜態字段一樣。

不可否認,我會用typeof(ApplicationInformation).Assembly代替,這可能更便宜...但這是另一回事。

+0

謝謝,這就是我需要知道的。 – grenade 2010-09-03 09:08:25