Le WLangage contient de nombreux types très évolués (types avancés, types de variables, ...). Il peut arriver que le nom d'un type WLangage, soit identique à celui d'un autre type inclus par un élément ajouté au projet (assemblage, type structuré, webservices...). Dans ce cas, la déclaration ou l'instanciation d'une variable provoque une erreur de compilation.
Par exemple en version 24(*) de WINDEV le code suivant :
oServiceExchange:Url = new Uri("https://msmail.montest.com/ews/Exchange.asmx")
Déclenche l'erreur de compilation suivante :
Utilisation ambiguë du type 'Uri'.
Plusieurs types du projet (types avancés du WLangage, classes d'assemblages .NET importés ou types structurés de Webservice) portent ce nom. Utiliser le nom complet du type à utiliser.
Une syntaxe dédiée est disponible dans pareil cas, afin de lever l'ambiguité et permettre la compilation. Il suffit de préfixer le type, de son emplacement. Par exemple le code :
oServiceExchange:Url = new Uri("https://msmail.montest.com/ews/Exchange.asmx")
devient :
oServiceExchange:Url = new System.Uri("https://msmail.montest.com/ews/Exchange.asmx")
Rappelons que l'apostrophe (quote) permet d'encadrer un nom, si celui-ci contient des espaces. On peut donc également écrire :
oServiceExchange:Url = new 'Systeme.Uri'("https://msmail.montest.com/ews/Exchange.asmx")
Rappelons pour le cas inverse, lorsqu'un type ou une fonction du WLangage est surchargé, on peut forcer l'utilisation du type ou de la fonction WLangage en le préfixant de ".WL".
Par exemple : MaVariable est un WL.<type>.
(*) conflit possible uniquement à partir de la version 24, car elle intègre un type Uri et un jeu de fonctions Uri* qui n'existait pas en WLangage dans les versions antérieures.
|