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 :

// projet ayant l'assemblage Microsoft.Exchange.WebServices importé
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")

 

 

 

 

(*) 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.

 

 

< Retour

Publier un commentaire : 
Votre adresse email ne sera pas publiée


© 2019 PC SOFT. Tous droits réservés. Réalisé  avec WEBDEV