Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для Злобный Зайц
14 / 14 / 1
Регистрация: 21.10.2010
Сообщений: 462

Где лучше разместить функцию?

04.01.2018, 13:04. Показов 742. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если несколько классов используют одну и ту же функцию, то где следует разместить такую функцию? Создавать специальный класс?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.01.2018, 13:04
Ответы с готовыми решениями:

Где лучше разместить долго выполняющийся код из Form_Load?
Вообщем в Form_Load у меня стоят много запросов на сайт, пока эти запросы не пройдут все форма не откроется, куда поставить эти запросы...

Что лучше всего читать/смотреть где лучше всего практиковаться и как в принципе лучше всего учиться программированию
Здравствуйте,извините за вопрос не по теме но: уже около пол года изучаю С языки и начал понимать что я упустил некоторые моменты,не...

This. Для чего он? И где лучше использовать, а где не желательно
Дл я чего используют this? И где лучше использовать, а где не желательно?

10
Фрилансер
 Аватар для FateOri
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
04.01.2018, 13:15
Цитата Сообщение от Злобный Зайц Посмотреть сообщение
Если несколько классов используют одну и ту же функцию, то где следует разместить такую функцию? Создавать специальный класс?
что за функция?)
ну да в общем случае в отдельный класс)
0
 Аватар для netBool
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
04.01.2018, 13:25
Цитата Сообщение от Злобный Зайц Посмотреть сообщение
Создавать специальный класс?
Да, родительский класс. Эта технология называется наследование. Все дочерние унаследуют ее автоматически
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
04.01.2018, 13:50
Варианты:
- Наследование
- Статический "утилитарный" класс
- Вынести в отдельный класс, использовать DI (Dependcy Injection), сервисы

Если функция простая и не работает с каким-либо состоянием (например, как методы объекта класса с полями объекта),
а только с аргументами, лучше выбрать статический класс со статическим методом.

C#
1
2
3
4
    public static class DecodingUtils
    {
        public static string Decode(byte[] arr, Encoding encoding) => encoding.GetString(arr);
    }
Часто классу недостаточно одной функции, а нужен целый класс, например, представляющий репозиторий БД,
тогда лучше вынести функции в отдельный класс-сервис и использовать DI.
Почитать можно тут и тут.

Про наследование, надеюсь, все ясно и так.
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
04.01.2018, 13:54
Цитата Сообщение от netBool Посмотреть сообщение
Да, родительский класс.
Хм, а если классы совсем разные и никак не связаны ?
Цитата Сообщение от Злобный Зайц Посмотреть сообщение
Создавать специальный класс?
Можно статический класс организовать
0
Фрилансер
 Аватар для FateOri
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
04.01.2018, 13:56
Цитата Сообщение от Почтальон Посмотреть сообщение
Хм, а если классы совсем разные и никак не связаны ?
тут надо ждать ТС чтобы подробности написал а не гадать )
1
 Аватар для Kotyara0live
34 / 28 / 27
Регистрация: 23.02.2016
Сообщений: 367
04.01.2018, 14:23
Цитата Сообщение от Почтальон Посмотреть сообщение
Хм, а если классы совсем разные и никак не связаны ?
интерфейс не вариант ? (просто как по мне норм идея)
0
Фрилансер
 Аватар для FateOri
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
04.01.2018, 14:29
Цитата Сообщение от Kotyara0live Посмотреть сообщение
интерфейс не вариант ? (просто как по мне норм идея)
совсем не вариант))
0
 Аватар для Kotyara0live
34 / 28 / 27
Регистрация: 23.02.2016
Сообщений: 367
04.01.2018, 14:30
Цитата Сообщение от FateOri Посмотреть сообщение
совсем не вариант))
а почему ? буду благодарен )
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
04.01.2018, 14:37
Цитата Сообщение от Kotyara0live Посмотреть сообщение
интерфейс не вариант ? (просто как по мне норм идея)
интерфейс обязывает реализовать себя, и если эта реализация для всех классов идентична - ненужное и не уместное раздувание кода... у ТСа как раз такой случай
0
 Аватар для netBool
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
04.01.2018, 17:16
Почтальон, тогда можно статику.
Просто подумал, что статика слишком очевидна и вряд ли вызвала бы затруденение.

Впрочем, как знать...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.01.2018, 17:16
Помогаю со студенческими работами здесь

Где разместить проект?
подскажите где разместить проект c# чтобы можно было на удаленной папке открыть проект, компилировать приложение и синхронизация...

Где лучше разместить блог?
(Извините, если где то обсуждалось. Не нашел) Ситуация такова: есть сайт - site.com.ua (каталог товаров в будущем магазин, сайт с 2004...

Где лучше разместить статью?
Написал хорошую статью на 4000 знаков. Подскажите плиз как лучше поступить для продвижения своего Сайта?: 1) Разместить статью на...

где лучше разместить рекламу от гугла (adsence)
В каждой тебе после первого сообщения? а может где ещё? есть у кого-нибудь опыт?

Подскажите где лучше будет разместить рекламу
Есть сайт с бесплатными видео уроками http://uchu24.ru. Зарегистрировался в директе, не знаю куда притулить рекламу чтобы не испортила...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru