Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 1
Регистрация: 14.04.2024
Сообщений: 175

Создание общего метода для нескольких проектов

05.01.2025, 22:49. Показов 3204. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть несколько проектов, в которых используется один и тот же метод. Как сделать, чтобы этот метод был только в одном файле, а все проекты его бы использовали? Вероятно, надо объединять все проекты в решение? Как это сделать и какие дальнейшие действия? В каждом проекте этот метод в классе этого проекта, хотя имя классов одинаковые? Метод статический, но могу сделать не статическим.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.01.2025, 22:49
Ответы с готовыми решениями:

Создание NuGet из нескольких проектов
Здравствуйте. Подскажите, у меня есть несколько решений(библиотеки классов) .net framework. Как из нескольких решений созданть один пакет...

Создание сетапа из нескольких проектов
Добрый день. Есть несколько проектов в разных солюшенах. Проекты в виде DLL (аддон к программе) Можно ли объединить несколько солюшенов...

СОЗДАНИЕ ПРОЕКТОВ ИЗ НЕСКОЛЬКИХ ФАЙЛОВ
Разработать программы, скрыв подпрограммы в отдельном файле (модуле), при этом использовать передачу параметров в функции и глобальную...

42
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
06.01.2025, 21:30
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от AndreyAndreyA Посмотреть сообщение
несколько проектов (они же решения)
проще собрать эти проекты в одно решение.. Для начала, для лучшего т.с. представления.
Цитата Сообщение от AndreyAndreyA Посмотреть сообщение
Метод, который одинаков и в А, и в В, и в С, будет постоянно изменяться: он ищет ключевые слова в строке, а ключевые слова и меняются часто и дополняются.
Ну так метод то тут при чем? Меняются слова - меняются аргументы поиска, а метод как был, так и остается. Или я чего-то не понимаю..
0
1 / 1 / 1
Регистрация: 14.04.2024
Сообщений: 175
06.01.2025, 23:55  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
Ну так метод то тут при чем? Меняются слова - меняются аргументы поиска, а метод как был, так и остается. Или я чего-то не понимаю..
Меняются не только слова, но и связи между ними, т.е. переставляются &&, ||. Добавления, удаления постоянны, т.к. происходит отслеживание текущей ситуации.
Я не понял, зачем помещать в общее решение проекты, если потом они будут ссылаться на проект dll? Ссылаться на проект dll может любой проект, не обязательно помещенный в общее решение.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
07.01.2025, 00:33
Цитата Сообщение от AndreyAndreyA Посмотреть сообщение
Я не понял, зачем помещать в общее решение проекты, если потом они будут ссылаться на проект dll?
Это обычная логическая организация "рабочей среды" можно сказать, особенно, если эти проекты связаны между собой одной тематикой. Просто удобно, поэтому и придумано такое понятие как Решение. Удобнее переключаться по вкладкам, а не по окнам, когда ведется работа одного направления.. Ну тут каждый сам себе велосипед, как поступать.
Цитата Сообщение от AndreyAndreyA Посмотреть сообщение
Меняются не только слова, но и связи между ними, т.е. переставляются &&, ||.
Значит метод должен принимать предикат с условиями и массив ключевых слов. Суть же метода не меняется: он будет искать согласно этим условиям. Здесь тоже ничего определенного не сказать без конкретики задачи.
Вопрос же топика был таков: как расшарить один и тот же метод между несколькими проектами.

Добавлено через 2 минуты
Ну и банально: если все проекты в одном решении, то все сразу можно скомпилировать одним разом. Если проекты в разных решениях (читай экземплярах VS), то придется тыкать компиляцию во всех измененных..
3
 Аватар для zhunshun
768 / 496 / 216
Регистрация: 05.04.2015
Сообщений: 2,080
07.01.2025, 21:06
Андрей, вам надо почитать про namespace, using. Никакие библиотеки не нужны. Всё разложить можно по папкам.

Добавлено через 2 минуты
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
07.01.2025, 22:30
Цитата Сообщение от AndreyAndreyA Посмотреть сообщение
Метод, который одинаков и в А, и в В, и в С, будет постоянно изменяться: он ищет ключевые слова (точнее, их взаимосвязь) в строке, а ключевые слова и меняются часто и дополняются.
Надо же как-то сообщать сборкам А, В и С о том, что изменился общий метод.

Два шага для улучшения реализации:
1) Разделить логику общего метода и его настройки (ключевые слова). Настройки хранить где-то в локали - обычно в RoamingFolder;
2) Общий метод должен быть в отдельном проекте (сборке). На этот проект ссылаются проекты сборок А, В и С. Будет лучше, если сборка с общем проектом будет помещена в NuGet пакет, с другие сборки будут его получать через NuGet.
0
152 / 136 / 29
Регистрация: 02.07.2013
Сообщений: 996
09.01.2025, 11:07
Цитата Сообщение от wizard41 Посмотреть сообщение
Лучше такие "общие" методы помещать в проект типа "Общий проект" (SharedProject)
не сталкивались ли вы с противным глюком, что переименовать класс который лежит в таком shared project из визуал студии не получается? (имею ввиду встроенный инструмент переименования).
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
09.01.2025, 11:19
golosalex, нет, не сталкивался. А какие там сложности появляются? Студия не видит упоминание этого класса в других местах?
0
152 / 136 / 29
Регистрация: 02.07.2013
Сообщений: 996
09.01.2025, 12:23
Цитата Сообщение от wizard41 Посмотреть сообщение
А какие там сложности появляются? Студия не видит упоминание этого класса в других местах?
просто не умеет переименовать класс корректно - в итоге если хочется поменять имя - приходится лазить по всем местам и вручную менять. иногда в шаред проектах даже метод не выходит переименовать.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
09.01.2025, 12:26
golosalex, понятно, но я не замечал. Вренее, не приходилось переименовывать классы в шаредпроектах..
0
152 / 136 / 29
Регистрация: 02.07.2013
Сообщений: 996
09.01.2025, 12:37
Цитата Сообщение от wizard41 Посмотреть сообщение
golosalex, понятно, но я не замечал.
а вы протестировали? мне вот интересно у вех такое? впервые заметил 2 года назад и до сих пор не пофиксили.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
09.01.2025, 12:51
Цитата Сообщение от golosalex Посмотреть сообщение
а вы протестировали?
да, надо бы. Попробую, отпишу результат.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
09.01.2025, 12:55
Цитата Сообщение от golosalex Посмотреть сообщение
а вы протестировали?
Чекнул -- первую минуту после открытия проекта тупило, но потом норм переименовывало
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
09.01.2025, 13:07
golosalex, тоже проблем не обнаружил с переименованием...

Добавлено через 1 минуту
именно самой студией (решарпер отключил). С решарпером то вообще пофигу мороз, что переименовывать. Найдет все везде..
0
152 / 136 / 29
Регистрация: 02.07.2013
Сообщений: 996
09.01.2025, 13:07
Цитата Сообщение от Wolfdp Посмотреть сообщение
Чекнул -- первую минуту после открытия проекта тупило, но потом норм переименовывало
вы переименовывали класс, и были ли где-то в коде ссылки на этот класс?
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
09.01.2025, 14:06
golosalex, переименовывается в обоих направлениях без проблем: и в самом файле, где этот класс лежит, а так же там, где он используется.
0
152 / 136 / 29
Регистрация: 02.07.2013
Сообщений: 996
09.01.2025, 14:12


вот прям сейчас в тестовом солюшине добавил шаред проект и попробовал его переименовать - не получилось. и так на всех машинах, где я пробовал. интересно что я делаю не так как вы. иногда прям сильно огорчает этот баг и хотелось бы как-то уметь его обходить.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
09.01.2025, 14:29
а ведь и правда, есть какие-то баги с этим. Переоткрыл проект, один раз переименовал и больше не дает...
Причем ни туда ни сюда.
0
152 / 136 / 29
Регистрация: 02.07.2013
Сообщений: 996
09.01.2025, 14:35
Цитата Сообщение от wizard41 Посмотреть сообщение
а ведь и правда, есть какие-то баги с этим. Переоткрыл проект, один раз переименовал и больше не дает...
Причем ни туда ни сюда.
а с решарпером получается? а то у меня его нету)
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
09.01.2025, 14:39
Цитата Сообщение от golosalex Посмотреть сообщение
а с решарпером получается?
с решарпером в этом плане нет проблем вообще.
0
152 / 136 / 29
Регистрация: 02.07.2013
Сообщений: 996
09.01.2025, 14:40
Цитата Сообщение от wizard41 Посмотреть сообщение
с решарпером в этом плане нет проблем вообще.
у вас старая лицензия или на торенте покупали?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.01.2025, 14:40

Создание общего события нескольких элементов управления
Есть User Control с большим количеством кнопок,как создать общее событие для этих кнопок(например клик,наведение и тп). Заранее...

Общий пакет для нескольких проектов
Здравствуйте, подскажите, как сделать общий пакет для трех проектов. У меня есть проект, но мне нужно распилить его на три сервиса. В...

App.Config для нескольких проектов
День добрый, есть солюшен с несколькими проектами. В каждом проекте есть свой файл настроек (app.config). Если я из первого проекта вызываю...

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

Расшарить визуальные компоненты для нескольких проектов
Всем доброго дня. Бьюсь уже несколько дней, не хватает опыта для реализации такой задачи. Есть несколько проектов, в них повторяются...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение 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. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru