Consultez le code suivant:Pouvez-vous instancier une classe dans son propre point d'entrée?
class Program
{
static void Main(string[] args)
{
new Program().Run(args);
}
void Run(string[] args)
{
...
}
...
}
Maintenant, cela fonctionne comme je l'attends, et certainement je ne vois rien évidemment faux, mais ce code me instinctuellement inquiète. J'ai donc trois questions:
- Ce comportement est-il bien défini par le compilateur?
- Est-ce que ce code fait ce que je m'attends à faire?
- Ce code est-il conforme aux meilleures pratiques?
Il n'y a absolument rien de mal à ce que vous faites. Les méthodes statiques créent des instances de la classe environnante tout le temps (voir le modèle singleton, par exemple). –