2010-09-03 7 views
0

Je veux comprendre l'efficacité des classes statiques car je pense que mes idées de base dans ce domaine pourraient être erronées. J'écris souvent du code comme le suivant en supposant que l'appel de reflexion coûteux se produira moins fréquemment puisque la variable privée contiendra l'information pour l'accesseur. Je suis sûr que c'est une bonne pratique dans les classes non statiques et les propriétés d'instance, mais est-il utile d'utiliser cette construction dans les classes statiques ou le champ privé doit-il être instancié à chaque appel de l'accesseur public?Classes statiques et efficacité

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

Répondre

2

Pourquoi serait-il instancié à chaque appel? C'est un champ statique, il "vivra" aussi longtemps que l'AppDomain, comme n'importe quel autre champ statique. À la place, j'utiliserais typeof(ApplicationInformation).Assembly, ce qui est probablement moins cher ... mais c'est une question différente.

+0

Merci, c'est ce que j'avais besoin de savoir. – grenade

Questions connexes