Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
02.02.2022, 14:24
|
|||
---|---|---|---|
|
|||
Аналог общей процедуры. |
|||
#18+
Доброго. Я уже понял что в C# полное ОПП, и все на классах. Например надо реализовать общую процедуру. Доступную из разных мест. Ну пусть, получить число 1 и число 2, сложить и вернуть сумму. Класс я сделал. Метод нарисовал. Но чтобы это заработало, мне надо создать объект, обратится в своему методу, получить чего надо, и потом прибить его. Как-то не красиво. Что я сделал неправильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 14:29
|
|||
---|---|---|---|
Аналог общей процедуры. |
|||
#18+
Читай про static методы https://habr.com/ru/post/206082/ ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 14:50
|
|||
---|---|---|---|
|
|||
Аналог общей процедуры. |
|||
#18+
есть только 1 путь и это следование парадигме ООП. суть ООП в том, что есть объект который хранит в себе какое то состояние. он описывает какой то объект, допустим камень по каким то метрикам. Объем, вес, плотность и т.д. И есть другой объект, который умеет складывать эти 2 объекта. При этом объект который складывает может быть какой угодно, но он должен выполняет требования контракта на эту операцию складывание и наследовать нужный интерфейс с необходимым для этого методом. в том, чтоб инстанцировать объект нет никаких проблем и в 99% стоит слишком дешево, даже если инстанцировать его каждый раз, при необходимости, а еще лучше получить его через инверсию управления. Статические методы это путь к монолитности, чрезвычайной связанности всех процессов в твоей системе, где этот статический метод применяется. Статический метод существует для совершения каких то простейших примитивных или не очень алгоритмов. Конечно, для сложения 2ух векторов, лепить выше описанное не имеет смысла, но для бизнес объектов он не подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 15:40
|
|||
---|---|---|---|
|
|||
Аналог общей процедуры. |
|||
#18+
Ну где-то и когда-то мне это объект мне надо создать. Вот к примеру. Какие-то настройки программы, Мне их надо считать раз при запуске программы, и держать и выдавать по требованию. Или вот по сложней пример. Работа с БД. Это тогда надо некий класс, которому я кидаю данные и он пишет их в базу. А для этого нужно подключение к БД постоянно открытое. То бишь нужны объекты которые живут на всем протяжении программ. Как их правильно делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 16:34
|
|||
---|---|---|---|
Аналог общей процедуры. |
|||
#18+
tavr2022 Это тогда надо некий класс, которому я кидаю данные и он пишет их в базу. А для этого нужно подключение к БД постоянно открытое. вот не нужно так делать. используйте пулл соединений и открывайте доступное соединение для выполнения и после получения результата сразу закрывайте. и используйте DI ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 16:47
|
|||
---|---|---|---|
|
|||
Аналог общей процедуры. |
|||
#18+
Shocker.Pro Как подключить это к WinForms недавно обсуждали здесь https://www.sql.ru/forum/1341845/podkluchenie-k-bd-i-konfiguraciya-windows-forms-net6 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 19:50
|
|||
---|---|---|---|
|
|||
Аналог общей процедуры. |
|||
#18+
Konst_One tavr2022 Это тогда надо некий класс, которому я кидаю данные и он пишет их в базу. А для этого нужно подключение к БД постоянно открытое. вот не нужно так делать. используйте пулл соединений и открывайте доступное соединение для выполнения и после получения результата сразу закрывайте. и используйте DI То ли я тупой, то ли не везет мне с литературой, либо азы описаны, либо в такие дебри ускакивают, что только знакомывые слова вижу. Вот все понял что написано. А с какого бока куснуть даже не догадываюсь. Мне где примерчик глянуть. Я еще только учусь сову на глобус натягивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 20:01
|
|||
---|---|---|---|
Аналог общей процедуры. |
|||
#18+
Ты бы определился что надо tavr2022 Ну пусть, получить число 1 и число 2, сложить и вернуть сумму. или с БД работать? Про первое я написал 22429102 , второе - выбирай фрэймворк Entity Framework или что полегковесней . В основе всего лежит ADO.NET ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 20:13
|
|||
---|---|---|---|
|
|||
Аналог общей процедуры. |
|||
#18+
Dima T, А дальше у меня среднее. Сложнее чем 2+2. Но БД тоже будет. Надо с десяток различных функций или процедур различных проверок. Математика там всякая. Бизнес-логика типа как по-научному должна быть отделена от интерфейса. Да хотя вот простое. Надо десяток констант, которые будут считаны из файла например при старте программы, и нужны они везде. Не конечно можно сделать класс статический, но мне как-то не нравится, не хорошо это как по мне. Можно класс с константами вызвать из класса основной формы, форма то стартует и держится до конца работы приложения. Но в учебниках пишут не надо так делать. А с БД тоже сначала надо без фремворков поработать. А то так дураком и помру. Они там все попрячут от меня. я так вообще ничего не пойму тогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 20:23
|
|||
---|---|---|---|
Аналог общей процедуры. |
|||
#18+
tavr2022 Не конечно можно сделать класс статический, но мне как-то не нравится, не хорошо это как по мне. Если тут вопрос фэншуя, то сам ищи идеальное решение. А так статика как раз для таких целей, а то что пишут что не рекомендуется, то это из-за того что злоупотребляют этим и не по назначению используют. tavr2022 А с БД тоже сначала надо без фремворков поработать. А то так дураком и помру. Они там все попрячут от меня. я так вообще ничего не пойму тогда. Фрэймворки чтоб дураком не помереть придумали, убить могут если кривым SQL-запросом случайно базу похеришь ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 20:29
|
|||
---|---|---|---|
|
|||
Аналог общей процедуры. |
|||
#18+
Dima T, Это вопрос как говорят бэст-практик, все умные пишут что статика только в поделках студентов для курсовых, тру программист без статики код пишет. Так что если аккуратно то можно? А лучше как целиком класс в статике или только методы? БД пока моя, у меня если чего бекап есть. Фреймворки иногда такие запросы генерируют что сервера падают, тоже не идеальное решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2022, 20:55
|
|||
---|---|---|---|
Аналог общей процедуры. |
|||
#18+
tavr2022 Dima T, Это вопрос как говорят бэст-практик, все умные пишут что статика только в поделках студентов для курсовых, тру программист без статики код пишет. Так что если аккуратно то можно? А лучше как целиком класс в статике или только методы? Зачем-то статики сделали? Было бы сплошное зло, то убрали бы. В общем случае это надо использовать по минимуму. Если у тебя десяток констант, которые ты в начале работы читаешь и потом пользуешь, то лучше их закэшировать в статик переменные, чем каждый раз читать из конфига. В идеале извне к ним должен быть доступ только для чтения. По сути это глобальные переменные со всеми их болячками, главная из которых - где-то, какой-то код ее поменяет и вся прога встает колом. Решение тут простое: ограничивать область видимости и ограничивать доступ на запись, но если действительно нужна глобальная видимость то надо делать глобальную переменную. tavr2022 БД пока моя, у меня если чего бекап есть. Фреймворки иногда такие запросы генерируют что сервера падают, тоже не идеальное решение. Есть литература как правильно использовать фрэймворк, наверно надо просто почитать. И толку от бэкапа если ты случайно накосячил и удалил вместо одной записи десяток-другой? В это время база продолжает работать, туда пишут новое, пока спохватишься откатываться поздно будет. Но если уверен в своих знаниях SQL, то можешь пробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&mobile=1&tid=1398179]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 167ms |
0 / 0 |