Form1.Show : d'accord ou pas d'accord ?
Le pauvre Paul Vick ne savait pas qu'en postant de nouveau sur ce sujet il déclencherait une polémique. Il faut dire, il l'a bien cherché ;-)
Quel est la problématique ?
Avant VB6, quand vous vouliez manipuler un objet de type Form, vous pouviez écrire :
Form1.Show
Cela ne dérangeait personne (enfin presque). Avec VB .NET, cette syntaxe était devenu totalement impossible, et pour cause:
- Form1, c'est le nom de la classe ? Et dans ce cas, Show est un membre partagé. Mais alors, il y a conflit avec le membre d'instance Show() de la classe System.Windows.Forms.Form dont hérite la classe Form1 ?!!!
- Form1 c'est le nom de l'objet ? Dans ce cas quel est le nom de la classe correspondante ?!!!
- Et si on veut instancier plusieurs Form1 on ferait comment ?
Bref, c'est pas cool.
MAIS
Et c'est là ou cela devient drôle, certaines personnes chez MS ont considérés que cette "fonctionnalité" était un MUST. Que cela simplifiait la vie des développeurs et que nombre de développeurs VB6 réclamaient cette fonctionnalité. Moralité :
Whidbey, pardon Visual Studio Fin2005-Presque2006 va intégrer cette "fonctionnalité".
Je ne vous raconte pas le numéro d'équilibriste que doit faire le compilateur VB pour y arriver (instanciation d'un singleton mais pas toujours et bonjour si y'a des références externes ;-))).
On avait discuté longuement de ce sujet il y a des mois : personne (à ma connaissance) n'était pour mais MS a quand même décidé de le conserver. En écrivant ce post, Paul a relancé la polémique et, dans une mailing list privé, il (et l'équipe de dev de VB) se font descendre copieusement depuis quelques jours (Bill Mc Carthy tjs à la pointe du sujet ;-))
Personnellement, je m'en fou un peu (et puis je considère l'implémentation du refactoring dans VB BEAUCOUP plus important comme priorité). L'essenciel est que les deux syntaxes restent possibles (mais bonjour l'explication a trouver pendant les formations!).
Et vous, qu'en pensez-vous ?
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :