Как вы разрешаете конфликты пространства имен .Net с ключевым словом "using"?

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

  •  09-06-2019
  •  | 
  •  

Вопрос

Вот проблема, вы включаете несколько сборок и добавляете "using namespaceX" в верхней части вашего файла кода.
Теперь вы хотите создать класс или использовать символ, который определен в нескольких пространствах имен, например System.Windows.Controls.Image & System.Drawing.Image

Теперь, если вы не используете полное имя, возникнет ошибка crib / build из-за двусмысленности, несмотря на правильные объявления "using" вверху.Каков же здесь выход?

(Еще одно сообщение из базы знаний..Я нашел ответ примерно через 10 минут поиска, потому что не знал нужного ключевого слова для поиска)

Это было полезно?

Решение

Использовать псевдоним

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

...

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

Как сделать:Используйте квалификатор псевдонима пространства имен (C #)

Другие советы

На этой странице есть очень хорошая статья о пространствах имен и инструкции using:

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

Вы хотите прочитать часть о "Создании псевдонимов", которая позволит вам создать псевдоним для одного или обоих пространств имен и ссылаться на них следующим образом:

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

ControlImage.Image myImage = new ControlImage.Image();
myImage.Width = 200;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top