Pourquoi le point d'entrée de la méthode main dans la plupart des programmes C# est-il statique ?
Réponses
Trop de publicités?Pour appeler une méthode d'instance, vous avez besoin d'une instance d'un objet. Cela signifie que pour lancer votre programme, le CLR doit créer une instance de, par exemple, l'objet Program
afin d'appeler la méthode Main
. Ainsi, le constructeur de Program
s'exécuterait avant Main
ce qui va à l'encontre de l'objectif d'avoir un principal ensemble.
Je retournerais la question. Quel est l'avantage décisif de l'implémentation de la fonctionnalité qui permet à Main d'être une méthode d'instance ? Les fonctionnalités sont coûteuses ; s'il n'y a pas d'avantage incontestable, elles ne sont pas implémentées.
Avez-vous une bonne raison pour laquelle Main devrait être autorisée à être une méthode d'instance ?
Conceptuellement, vous n'avez qu'une seule instance d'une méthode statique. Et une méthode statique correspond bien à l'idiome d'un point de départ unique pour un programme. Les concepteurs du langage auraient pu créer une classe de programme spéciale à utiliser avec une méthode main, mais ils ont choisi de créer une fonction statique unique comme point d'entrée. À certains niveaux, il s'agit simplement d'un choix de conception.