170 похожих чатов

Пацаны, я учу шарп уже почти месяц. Но ООП как

то очень трудно дается, то есть я понимаю механизм что есть что И так далее, но когда начинаю писать код, стараясь использовать ооп то все - плыву. Это нормально? Или я один такой дебил?

52 ответов

15 просмотров

над прост понять что такое классы, зачем нужны классы и.т.д + базу вот эту всю, вроде все остальное чисто фичи шарпа, которые достаточно простые (ну типа ООП в плюсах куда сложнее, там 100500 нюансов, а в шарпе все предельно прост)

Некоторые всю жизнь плавают и не признаются, заучат минимум и считают себя профи. Главное это осознавать и всегда учиться

Andrei-Fury Автор вопроса
Андрей Москаленко 🇺🇦
над прост понять что такое классы, зачем нужны кла...

Да я как бы в целом понимаю для чего нужны классы, то что они могут наслодоватся ято есть интерфейсы и обструкции И так далее, По отдельности все понятно, но когда ты остаешься 1 на 1 сам с собой то из всего этого в голове каша, и просто не понятно , даже не понятно что именно не понято)

пойми, ООП это способ решения какой-то проблемы скажем у тебя есть два класса, у которых есть какое-то общее поведение И если например общего очень много, и шанс того, что какое-то изменение в одном месте неизбежно повлечёт за собой мысль "блин а в другом классе я также делаю надо подправить" , ну например ты работал с файлом, а теперь твой начальник сказал перейти на MYSQL, ты сразу поймёшь например что такое Базовый класс и зачем он нужен , в таком кейсе. Чтобы вынести общую логику "выше", конкретно в этом примере -> перейти от хранения в файле к хранению в БД

Все нормально, у меня также было, главное продолжай черпать информацию, а понимание вскоре придет

Вот в профиле у тебя заявление что сеньёр программер через полгода - это хорошая шутка) я в с# абсолютный новичек, не знаю как у вас, а с sql, системным мэнеджментом, управлением и т.п. я так сказать до синьера шел лет 8)

Andrei Fury
Да я как бы в целом понимаю для чего нужны классы,...

Для начала я-бы рекомендовал посмотреть что такое настоящее ООП. В C# его огрызок. Правда его пытаются допилить до полного, но то как они это делают вызывает только фейспалм.

Warstone
Ну в плюсах, допустим.

И чем же там ооп лучше и почему оно настоящее

Kirill
И чем же там ооп лучше и почему оно настоящее

Ну для начала там есть множественное наследование.

Warstone
Ну в плюсах, допустим.

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

Warstone
Ну для начала там есть множественное наследование.

Интерфейсы в шарпе грустят. Во вторых множественное наследование говно

Warstone
Для начала я-бы рекомендовал посмотреть что такое ...

Где посмотреть что такое настоящее ООП?

Kirill
Интерфейсы в шарпе грустят. Во вторых множественно...

Интерфейсы - это костыли от отсутствия множественного ООП. И то что теперь там можно писать методы - только подтверждает это

Warstone
Вы заблуждаетесь. CRUD'ы там пишут.

стоит хоть 1 раз покодить хоть что-то уровня лабок / курсовых, шоб понять шо там такой порог вхождения, шо тупо не выгодно этот язык тащить туда, где подойдет шарп / го / нода и вот эт все )

Андрей Москаленко 🇺🇦
стоит хоть 1 раз покодить хоть что-то уровня лабок...

Вы удивитесь, но если использовать поднабор, то внезапно С++ становится понятным.

Warstone
Вы удивитесь, но если использовать поднабор, то вн...

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

Stas
😂👍💋

Ну в плюсах интерфейсов нету за ненадобностью. Так как интерфейсы реализуются абстрактными классами. Ну просто by design

Warstone
Интерфейсы - это костыли от отсутствия множественн...

Я хз зачем добавили имплементацию методов в интерфейсах. Это совсем лишнее. Давай смотреть на интерфейс так как положено

Kirill
Я хз зачем добавили имплементацию методов в интерф...

Ну тогда это просто костыль от отсутствия множественного наследования

Warstone
Ну тогда это просто костыль от отсутствия множеств...

Зачастую от множественного наследования строго такие ощущения

Dmitriy Bobrovskiy
Зачастую от множественного наследования строго так...

Вы просто не умеете его готовить. Например косытли DI в множественном наследовании решаются очень просто...

Warstone
Ну тогда это просто костыль от отсутствия множеств...

Понятно, интерфейсы это про множественное наследование, однако!

Stas
Понятно, интерфейсы это про множественное наследов...

Это ответ языков без множественного наследования на вопрос "А что делать-то"

Stas
Понятно, интерфейсы это про множественное наследов...

Ага, вот бы разрабы дотнета удивились, наверное.

Warstone
Это ответ языков без множественного наследования н...

А что делать когда? Какую проблему вы решаете множественным наследованием?

Stas
А что делать когда? Какую проблему вы решаете множ...

Что делать, когда вам надо отнаследоваться от более чем одной сущности

Warstone
Что делать, когда вам надо отнаследоваться от боле...

Если надо отнаследоваться от более, чем одной сущности, то есть агрегация, а вообще имеет место проблема проектирования зачастую

Warstone
Не используйте интерфейсы

И терять удобство и гибкость языка?

Warstone
Что делать, когда вам надо отнаследоваться от боле...

Не делать этого ок? Зачем тебе сущность которая наследует сразу 2 функционала? Зачем сразу 2 ответственности? Используй агрегацию и делегируй ответственности другим сущностям

С чего бы?

Не используйте интерфейсы.

Warstone
Не используйте интерфейсы.

Так а в чем проблема? Если тебе не нужна логика в классе, то пиши интерфейс и всё

Dmitriy Bobrovskiy
С чего бы?

Я уже сказал... Хорошо... Вам нужен пример... В качестве примера возьмем интерфейс IDisposable. Это класс, который реализует корректную работу с Unmanaged объектами. Нет, я понимаю что это интерфейс, но если-бы это был нормальный язык, то защиту от повторного вызова и от попытки удалить уже удаленные ресурсы вы написали-бы в IDisposable

Kirill
В каждом объекте своя реализация

Но везде и всегда есть защита от 2го вызова

Warstone
Я уже сказал... Хорошо... Вам нужен пример... В ка...

Реализации IDisposable могут быть разными. Сам интерфейс удобен тем, что мне не надо требовать наследования от хер пойми какого класса, который ни разу не знает, как ему диспозить мой объект.

Warstone
И вот вы нарушили инкапсуляцию.

С хуя ли? Я вовне даю метод Dispose. А реализацию как раз инкапсулирую.

Похожие вопросы

Обсуждают сегодня

Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
13
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Карта сайта