2009-04-27 8 views
4

Je suis un programmeur C/C++ qui travaille depuis peu en C#, et j'essaye de faire des trucs d'initialisation avec lesquels j'ai eu des problèmes. L'exemple le meilleur et le plus simple que je puisse trouver serait que je veux créer un Singleton "Eager" - un qui est créé immédiatement au démarrage du programme, mais sans que j'aie besoin d'aller dans la fonction principale du programme et dites "Singleton.Instance()" comme première chose. J'ai lu sur instanciation statique, et il semble qu'il doit être appelé ou créé avant l'instanciation d'un objet statique, donc j'ai essayé de créer une variable statique qui instancie l'objet, mais cela n'a pas fonctionné. (Je n'ai trouvé aucune documentation sur le moment où les variables statiques sont instanciées/initialisées).C# instancier/initialiser l'objet au démarrage du programme

Des pointeurs?

Merci!

Edit: après quelques recherches supplémentaires, je pense que je peux accomplir ce que je suis à la recherche d'un bloc de code unique utilisant la réflexion

+0

Matière à réflexion sur les dangers des singletons http://www.youtube.com/watch?v=-FRm3VPhseI –

+2

Souhaitez-vous partager les résultats de vos recherches complémentaires? – bboyle1234

+0

Voir l'article de Jon Skeet sur l'implémentation des singletons en C# - [http://www.yoda.arachsys.com/csharp/singleton.html](http://www.yoda.arachsys.com/csharp/singleton.html) – abhilash

Répondre

2

Un constructeur statique est appelé uniquement lorsque vous faites référence à la classe qui contient la constructeur. Ainsi, lorsque vous voulez que votre code d'initialisation s'exécute au démarrage du programme, vous devez faire explicitement référence à la classe contenant le constructeur dans votre code de démarrage (la méthode Main par exemple).

Questions connexes