Introduction
Les programmeurs qui passent de VB.net à C # doutent souvent pourquoi il n'y a pas de fenêtres en C # sans l'instance par défaut de la fenêtre. Cet article explore les détails de ce thème, traite de l'origine, des différences et des limites de l'instance par défaut dans VB.NET, et les raisons de l'absence d'instances par défaut en C #.
L'origine de l'instance par défaut
Dans VB.net, la fenêtre est unique dans l'espace de nom via son attribut de nom. Cet attribut est également pratique pour l'instance par défaut de la fenêtre. Cette fonction permet aux développeurs d'utiliser directement son nom pour accéder à la fenêtre, même s'il n'y a pas d'instance de création explicite. Par exemple, dans vb.net, vous pouvez utiliser pour afficher la fenêtre sans avoir à instancier l'objet d'abord.
Différences d'implémentation Form1.Show()
Form1
. En effet, C # suit plus d'objets orientés vers la classe, où les instances de la classe sont différentes de la classe elle-même. Le code IL généré
Show()
Fait intéressant, le code IL généré par les deux langues révèle des différences plus profondes. Dans VB.NET, l'instance par défaut est exprimée en tant que méthode statique sur la classe Window. D'un autre côté, en C #, la méthode
Avantages et limitations
Le mécanisme d'instance par défaut dans VB.NET fournit un raccourci pour les programmeurs qui souhaitent accéder directement à la fenêtre. Il est également conforme aux attentes des programmeurs VB6 qui sont habitués à travailler sans instances explicites. Cependant, cette commodité est coûteuse. La méthode générée par statique ne peut pas accepter les paramètres, ce qui le rend inconfortable avec la méthode d'instance.
Show()
La méthode équivalente en C #
Bien que C # lui-même ne prenne pas en charge l'instance par défaut de la fenêtre, il peut simuler ce comportement en créant un attribut statique global qui renvoie une instance de classe de fenêtre. Cependant, cette méthode n'est pas assez concise et nécessite un code de modèle supplémentaire.
Conclusion Show()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!