Come si risolvono i conflitti dello spazio dei nomi .Net con la parola chiave "using"?

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

  •  09-06-2019
  •  | 
  •  

Domanda

Ecco il problema, includi più assembly e aggiungi "using namespaceX" nella parte superiore del file di codice.
Ora vuoi creare una classe o utilizzare un simbolo che è definito in più nomi, ad es. System.Windows.Controls.Image & System.Drawing.Image

Ora, a meno che non si utilizzi il nome completo, si verificherà un errore di crib/build dovuto all'ambiguità nonostante le giuste dichiarazioni 'using' in alto.Qual è la via d'uscita qui?

(Un altro post della knowledge base..Ho trovato la risposta dopo circa 10 minuti di ricerca perché non conoscevo la parola chiave giusta da cercare)

È stato utile?

Soluzione

Usa l'alias

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

...

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

Come:Utilizzare il qualificatore alias dello spazio dei nomi (C#)

Altri suggerimenti

Questa pagina contiene un ottimo articolo sugli spazi dei nomi e sull'istruzione using:

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

Vuoi leggere la parte sulla "Creazione di alias" che ti permetterà di creare un alias per uno o entrambi gli spazi dei nomi e fare riferimento ad essi in questo modo:

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

ControlImage.Image myImage = new ControlImage.Image();
myImage.Width = 200;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top