Comment résolvez-vous les conflits d’espace de noms .Net avec le mot-clé « using » ?

StackOverflow https://stackoverflow.com/questions/61262

  •  09-06-2019
  •  | 
  •  

Question

Voici le problème, vous incluez plusieurs assemblys et ajoutez « using namespaceX » en haut de votre fichier de code.
Vous souhaitez maintenant créer une classe ou utiliser un symbole qui est défini dans plusieurs espaces de noms, par exemple System.Windows.Controls.Image & System.Drawing.Image

Maintenant, à moins que vous n'utilisiez le nom complet, il y aura une erreur crib/build en raison de l'ambiguïté malgré les bonnes déclarations « using » en haut.Quelle est la sortie ici ?

(Un autre article de la base de connaissances..J'ai trouvé la réponse après environ 10 minutes de recherche car je ne connaissais pas le bon mot clé à rechercher)

Était-ce utile?

La solution

Utiliser un pseudo

using System.Windows.Controls;
using Drawing = System.Drawing;

...

Image img = ... //System.Windows.Controls.Image
Drawing.Image img2 = ... //System.Drawing.Image

Comment:Utiliser le qualificatif d'alias d'espace de noms (C#)

Autres conseils

Cette page contient un très bon article sur les espaces de noms et l'instruction using :

http://www.blackwasp.co.uk/Namespaces.aspx

Vous souhaitez lire la partie sur la « Création d'alias » qui vous permettra de créer un alias pour l'un ou les deux espaces de noms et de les référencer comme ceci :

using ControlImage = System.Windows.Controls.Image;
using System.Drawing.Image;

ControlImage.Image myImage = new ControlImage.Image();
myImage.Width = 200;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top