Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/30: Рейтинг темы: голосов - 30, средняя оценка - 4.60
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52

Конфликт одноименных полей классов из разных Namespace

08.11.2012, 12:14. Показов 6449. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть задача следующего плана,
Хотелось бы в ПО иметь несколько однотипных
классов
Namespace1
Namespace2
Namespace3
Каждый в будущем хотело бы скомпилировать
отдельной динамической библиотекой. Но пока это не суть...

В namespace есть свои структуры, конструкторы, массивы,
но они имеют одинаковые имена и вызовы, что мне позволяет компилировать
ПО с любым namespace, только меняя её в директивах.
Теперь я хочу получить возможность переключаться между ними динамически.
Когда я подключаю все Namespace я получаю ошибку рода...:
Ошибка 6 "cStatus" - неоднозначная ссылка между "Class1.cStatus" и "Class2.cStatus"

Как мне написать это всё правильно?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.11.2012, 12:14
Ответы с готовыми решениями:

Использование одинаковых классов разных namespace
Есть проект (NameSpace Work1), к которому подключена библиотека Dll (создана на основе программы с NameSpace Work2). В проекте и в...

Массив разных классов. Как добратся до всех полей этих классов?
Все классы имеют общего предка. Экземпляры этих классов запихнуты в один массив нужно както добраться до полей и методов которые...

Связывание значений полей и свойств объектов разных классов
Здравствуйте. Нужен совет. Имеется переменная типа SolidColorBrush. Есть объект другого класса, и я хочу связать соответствующее его...

26
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
12.11.2012, 12:41  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Psilon Посмотреть сообщение
C#
1
много кода ...
хммм... логично...
ну не знаю зачем я задал разные неймспейсы, :-)
наверное. потому что классы одинаково назвал,
теперь назову по разному и попробую слить...
сяб... )))
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.11.2012, 13:00
Pyhesty, не за что
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
12.11.2012, 13:47
Цитата Сообщение от Pyhesty Посмотреть сообщение
Вариант с интерфейсом работает просто изумительно, все классы устройств
объединились под одной шапкой, но вот с dll ещё не пробовал...
казалось бы не должно быть проблем... файл интерфейса оставить в проекте и
в интерфейс подключить две наследующие его библиотеки...
но может я и не прав... не всё так просто и русло не без подводных каменей...
получитс - отпишусь
Скачай проект, что я выложил. Там готовый пример. Интерфейс тоже надо пихать в отдельную библиотеку. Я бы вообще не парился, что у меня 2 библиотеки, что 10, кому это интересно? 3 так пусть будет 3.

Я как понял, класс как раз надо называть одинаково. То есть клиенту скидывается эксешник, библиотека с интерфейсом и библиотека для работы самой камеры. То есть можно будет просто менять библиотеку для работы другого типа камеры ничего не меняя в эксешнике (не делая миллиот if else if). Это будет можно, если названия классов будут одинаковые. Вообще это я так думаю, на деле не пробовал, но думаю, что всё так и есть.

Добавлено через 1 минуту
Цитата Сообщение от Psilon Посмотреть сообщение
Зачем вообще по разным неймспейсам распихивать?
Это да, согласен. Но в добавок, зачем вообще if else if, если будет меняться у каждого клиента библиотека?
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.11.2012, 13:48
Casper-SC, нет, придется точно также уточнять в таком случае неймспейс. Единственный способ во время компиляции всем библиотекам присваивать один и тот же неймспейи и один и тот же класс. Но по мне проще написать миллион if-else, чем каждый раз мучаться, вручную меняя неймспейс (каждую библиотеку придется компилировать отдельно, иначе студия не разрешит компилировать два одинаковых класса в одном нейспейсе, а если поместить в разные - придется писать тот же миллион if-else для выбора неймспейса).
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
12.11.2012, 13:51
В том примере, что я написал, я думал надо именно в одном проекте 2 dll с одинаковыми классами и разными namespace'ами.

Добавлено через 1 минуту
Цитата Сообщение от Psilon Посмотреть сообщение
каждую библиотеку придется компилировать отдельно, иначе студия не разрешит компилировать два одинаковых класса в одном нейспейсе
Да я тоже об этом сейчас подумал. В принципе, тогда можно делать как я сделал в примере.

Добавлено через 1 минуту
Короче, надо сидеть пробовать и подбирать самый подходящий вариант. Так с ходу сложно сказать, что лучше.
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.11.2012, 13:53
Casper-SC, это как раз просто. Я говорю: нужен или алогритм выбора неймспейса, или алгоритм выбора класса. Ну третий вариант, извращенский: компилируем в нативном неймспейсе class для camera1, скомпилировали, изменили, скомпилировали эту же dll, но запихнули в архив camera2...Потом с нужным архивом распаковывается и вуаля. Но мне проще написать метод выбора с switch, чем париться с ручными перестановками. Тем более, что при грамотном проектировании switch спокойно заменяется полиморфизмом.
0
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
12.11.2012, 18:34  [ТС]
Цитата Сообщение от Casper-SC Посмотреть сообщение
Скачай проект, что я выложил. Там готовый пример. Интерфейс тоже надо пихать в отдельную библиотеку. Я бы вообще не парился, что у меня 2 библиотеки, что 10, кому это интересно? 3 так пусть будет 3.

Я как понял, класс как раз надо называть одинаково.
Пример отличнейший, 10 спасибо.
Да именно так, мне именно требовалось наймспейсы разные, классы одинаковые.
Просто вариант разные классы, объединённые интерфейсом и один наймспейс.
видимо для меня то же подходит, чуть позже скомпилю оба варианта.

Для тех, кто ищет решение пример в рекомендацию, в нём всё понятно,
ещё раз большой сяб.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2012, 18:34

наследование одноимённых классов
Пример: namespace a { class A { public: A(); }; } // end of namespace a

Получение результатов выборки из одноименных полей
Так получилось, что в нескольких таблицах БД имена столбцов повторяются. Табл. Страна (id_country, runame, enname) Табл. Город...

Копирование значений однотипных одноименных полей класса
Есть класс Class Class1 { Int Var1; String Var2; } И Class Class2 { Int Var1;

Вызов одноименных функций классов наследников из родительского класса
Как вызвать функцию классов наследников из родительского класса. Нужно что бы было универсальное решение, если мы захотим создать еще...

#include <list> - конфликт using namespace std с другими инклюдами
Всем привет. Появилась надобность использовать списки, однако #include &lt;list&gt; подключается только вместе с using namespace std. Мои...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru