Как вы разрешаете конфликты пространства имен .Net с ключевым словом "using"?
-
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;