The Meteorologist
Messages postés232Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 3 novembre 2011
-
7 déc. 2008 à 00:30
The Meteorologist
Messages postés232Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 3 novembre 2011
-
7 déc. 2008 à 14:38
Je viens de découvrir quelque chose auquel je n'avais jamais prêté attention avant ...
Dans l'espace de nom "Microsoft.VisualBasic" on peut directement trouver des méthodes, énumérations, etc... Comme s'il s'agissait d'une classe statique. C'est totalement impossible, et totalement absurde dans le contexte de l'orienté objet non ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 7 déc. 2008 à 11:39
Comme le dit PCPT, Microsoft.VisualBasic est une assembly bien particulière qui a été créée pour permettre à l'assistant de migration des projets VB6 de travailler un minimum correctement, et elle ne devrait d'ailleurs être utiliser que pour cela. Il n'est pas impossible qu'elle soit codée différenment des autres
Ceci dit, si je reprend ton exemple, et si je le code correctement :
Namespace MonNameSpace
Module MonModule
Public Sub DireBonjour()
End Sub
End Module
End Namespace
Je vois bien la fonction DireBonjour directement sous le NameSpace comme pour M$.VisualBasic. Cela n'a donc rien d'illogique
The Meteorologist
Messages postés232Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 3 novembre 20111 7 déc. 2008 à 00:41
Mais le problème, c'est que c'est un NameSpace et qu'on y trouve des méthodes ... Essaie de faire par exemple :
NameSpace MonNameSpace
Public Sub DireBonjour()
End Sub
End NameSpace
VisualStudio va grossièrement t'insulter et c'est tout a fait normal, une méthode n'a rien à faire dans un NameSpace. Donc je ne vois pas pourquoi le
NameSpace VisualBasic est remplit de méthodes, c'est totalement incohérent, et cela ressemble méchamment à une bourde des développeurs ^^
The Meteorologist
Messages postés232Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 3 novembre 20111 7 déc. 2008 à 14:38
Ah oui tiens O_o Déclaré dans un module il apparaît directement dans le NameSpace ...
Au temps pour moi alors ^^ Enfin cela reste une bizarrerie qu'on puisse appeler une méthode comme suit : NameSpace.Methode. Je n'ai jamais vu ça dans aucun langage orienté objet, et d'ailleurs c'est une infraction grave aux lois de l'OO =P
Enfin certes, c'est vrai que c'est pour faciliter la migration vers le .NET mais je trouve ça quand même honteux que cela soit toléré de faire ce genre de choses dans son propre projet :/ J'espère que dans VB10, ces vilains modules tellement paradoxaux auront enfin disparus --', on n'en voit encore tellement dans des sources VB.NET.