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

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

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

52 ответов

6 просмотров

над прост понять что такое классы, зачем нужны классы и.т.д + базу вот эту всю, вроде все остальное чисто фичи шарпа, которые достаточно простые (ну типа ООП в плюсах куда сложнее, там 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. А реализацию как раз инкапсулирую.

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
11
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
это группа токсиков или тех кто помогает?
Ибрагим
9
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
Я короче решил скомпилировать Nim в js, я думал он сработает как обычный транслятор. По итогу он мне создал файл с расширением js, и туда поместил кучу кода Вопрос, что это з...
𝕾𝖍𝖆𝖉𝖊 <suspense>
9
мы пытаемся подменить функцию, которая имеет меньше инструкций относительно функции, которой подменяем. https://www.reddit.com/r/jailbreakdevelopers/comments/w06ujy/mshookfun...
Óðinn
6
У кого-нибудь есть под рукой функция кодирования юникода, которая из фразы На русском сделает \u041d\u0430\u0020\u0440\u0443\u0441\u0441\u043a\u043e\u043c ?
Daniil Smolyakov
7
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Карта сайта