Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =) ✅Доступ к исходному коду и спонсорство www.patreon.com/SimpleCode ✅ donatepay.ru/don/SimpleCode ✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
@nargavas88363 жыл бұрын
А можно уроки по Windows Forms пожалуйста?
@vadimpetrov84513 жыл бұрын
с нетерпением ждём следующего урока .
@777noob777saibot3 жыл бұрын
В данном случае можно обойтись абстрактными классами и при этом ещё будет доступен метод ShowInfo , который был ранее. Если так, то где вообще нужны эти интерфейсы? using System; abstract class Weapon { public abstract int Damage { get; } public abstract void Fire(); public void ShowInfo() { Console.WriteLine($"{GetType().Name} Damage {Damage} "); } } abstract class Cold_Weapons : Weapon { public abstract void Throw(); } class Gun : Weapon { public override int Damage { get { return 5; } } public override void Fire() { Console.WriteLine($"{GetType().Name} ; Пых"); } } class Automat : Weapon { public override int Damage { get { return 7; } } public override void Fire() { Console.WriteLine($"{GetType().Name} ; Тын,Тын,Тын"); } } class Laser : Weapon { public override int Damage { get { return 5; } } public override void Fire() { Console.WriteLine($"{GetType().Name} ; Пиу"); } } class Bazuca : Weapon { public override int Damage { get { return 10; } } public override void Fire() { Console.WriteLine($"{GetType().Name} ; Вууухх"); } } class Knife : Cold_Weapons { public override int Damage { get { return 3; } } public override void Fire() { Console.WriteLine($"{GetType().Name} ; Удар ножом "); } public override void Throw() { Console.WriteLine($"{GetType().Name} ; Нож брошен"); } } class Player { public void Fire(Weapon weapon) { weapon.Fire(); } public void Throw(Cold_Weapons weapon) { weapon.Throw(); } public void CheckInfo(Weapon weapon) { weapon.ShowInfo(); } } class Program { static void Main() { Player player = new Player(); Laser laser = new Laser(); player.Fire(laser); player.Fire(new Knife()); Console.WriteLine(); Weapon[] inventary = { new Gun(), new Automat(), new Laser(), new Knife() }; foreach (var item in inventary) { player.Fire(item); player.CheckInfo(item); } Console.WriteLine(); Knife knife = new Knife(); knife.Throw(); player.Throw(knife); } }
@АлександрНеживой-х3щ Жыл бұрын
@@777noob777saibot Множественное наследование - вот преимущество интерфейсов перед абстрактными классами. С помощью этого можно расширять функционал, не ломаю логику и архитектуру приложения
@Vlaska_1Ай бұрын
ну вот этот урок намного проще было понять чем прошлый. Сергей спасибо за то что сделали этот курс, благодаря вам я теперь могу переходить на новый уровень и начать изучать фреймворки(но курс все равно досмотрю)!!! Обещаю вам что когда я устроюсь джуном на работу то скину вам n% о своей з/п с качестве благодарности)))
@integer_dev3 жыл бұрын
Сразу лайк! Грех не поддерживать такой хороший курс! надеюсь в скором времени мы доберемся и до событий, делегатов, лямбд, символов удаления, переопределение арифметических операторов, обобщению (generics), к неуправляемым обьектам и до многого другого добра в c# 😎👊👍
@sergeynovikov70493 жыл бұрын
Говорят, лучше чуть-чуть (пару минут) выждать, иначе не учитываются лайки и комменты при монетизации.
@PostnikovSergeyAlex3 жыл бұрын
Отличная идея, объяснение на примере создания игры, идеально усваивается! Спасибо Вам, Сергей, никакие курсы не сравнятся с Вашим талантом объяснять и подбирать материал, ещё раз Спасибо!
@cyberwarlus27583 жыл бұрын
Спасибо за ваш труд! Сергей
@integer_dev3 жыл бұрын
ура, новый урок! + к мотивации стать c# программистом
@artlinestudio67353 жыл бұрын
Отличный урок! В прошлом ничего не понял ). В этом понял все и за тот и за этот уроки! Спасибо Сергей!
@ВиталийКирия3 жыл бұрын
Сергей огромная вам благодарность за уроки! Вы большой молодец!
@carservice30763 жыл бұрын
знаешь в чём минус твоих уроков?......они слишком классные, крутые. Ладно, это шутка, но на самом деле они просто супер! И ведь запарился и снимаешь такие уроки. Я к чему, просто есть другие люди и они тоже делают уроки, но посмотришь их и программирование изучать перехочется . А у тебя так всё разложено и разжевано, проще некуда. Спасибо за твои классные уроки!
@ShomLZ3 жыл бұрын
Уже далеко вперёд убежал в обучении, но все равно смотрю Сергея, для закрепления материала. Спасибо за урок!
@blackcreeper53143 жыл бұрын
А где изучали?
@ShomLZ3 жыл бұрын
@@blackcreeper5314 metanit и книжки читаю (Сергей давал список в видео) + задачи на codeward
@mikola_ua70503 жыл бұрын
Сделайте, пожалуйста, урок по работе с GitHub в VisualStudio как сохранять, загружать проект и т.д. очень интересно
@_chill_relax_calm46473 жыл бұрын
Поддерживающий комментарий для дальнейшего развития канала. Вы чрезвычайно понятно все объясняете
@maxwad3 жыл бұрын
Сергей, огромное спасибо за уроки. Главное - не останавливайся.)
@vadimpetrov84513 жыл бұрын
огромное Вам спасибо за отличные уроки. всегда с удовольствием смотрю !.🚁🚀
@adamadamesko97593 жыл бұрын
Я очень рад что урок мне понравился, спасибо!
@firemanhood15263 жыл бұрын
Твои уроки дух захватывает))
@sergeynovikov70493 жыл бұрын
Забываю иногда про понедельники, забот хватает и вдруг уведомление о новом выпуске!) И всё сразу играет красками!)
@farrukhyuldoshev82233 жыл бұрын
Ура)) долго ждал новый урок спасибо огромное.
@VADIM-SOLOV3 жыл бұрын
Вау! Интерфейсы это очень крутая штука! Спасибо за урок :)
@onegarrisonmo69463 жыл бұрын
Здравствуйте Сергей, спасибо вам большое за ваши уроки🙏. Если получится снимите видеоурок для плейлиста { C# ПЛЮШКИ } на тему работа с Api в С#.📡
@sergeynovikov70493 жыл бұрын
Поддерживаю просьбу!
@michaeltkachenko73133 жыл бұрын
Там ничего сложного нет, самому легко разобраться
@sergeynovikov70493 жыл бұрын
@@michaeltkachenko7313 как и в любом вопросе. Но раз уж записывается цикл, тем более с таким грамотным объяснением, то неплохо было бы посмотреть урок и по этой теме. Спрос рождает предложение. Если Вы знаете ресурс, где можно ознакомиться с уроками по данной теме, то лучше сразу оставить ссылку на этот ресурс. А если нет, тогда будем надеяться, что Сергей запишет ролик по данной просьбе.
@egorkalmykov40033 жыл бұрын
Спасибо большое за полезнейшие уроки !!!
@Vladlenka3 жыл бұрын
-Видишь актив? -Нет -И я не вижу. А он есть
@DmitryDolganov3 жыл бұрын
Сергей, благодарю!!!
@ifelru3 жыл бұрын
Спасибо за полезный и отличный урок!
@Катерина-э4я3 жыл бұрын
Круто! Спасибо большое!
@ninjadiestanding50823 жыл бұрын
Большое спасибо за урок!
@justcode56263 жыл бұрын
Удачи вам и терпения в обучении искусства программирования!
@3x__3 жыл бұрын
спасибо за урок
@ПавелБойко-ь2д3 жыл бұрын
Хороший урок , зашел на ура!) спасибо!)
@ЕвгенийКадочников-с1ы Жыл бұрын
Автор, СПАСИБО! Даже мне понятно
@____-fh4wx3 жыл бұрын
какой прелестный урок😊
@Antonov_Ivan.4 ай бұрын
Спасибо за урок!
@alexanderdementjev58673 жыл бұрын
Спасибо. Очень всё доходчиво.
@vladoss4643 Жыл бұрын
Вопрос!! Для данной задачи правильнее было бы реализовывать такую схему взаимодействия интерфейсов, при которой они бы друг от друга не зависели. Ведь в будующем может быть добавлено такое оружие, как сюрикены, например. Из которых нельзя стрелять, но которые можно кидать. И тогда лучше было бы не делать один интерфейс наследуемым от другого, а сделать класс Knife, реализующий два независимых интерфейса. И это бы рвботало также в текущей ситуации, но имело бы правильную систему развития в будущем. Так что до чих пор непонятно, в каком случае стоит использовать наследуемые интерфейсы))
@ДенисВербіцький-ц8ц Жыл бұрын
После просмотра ролика, тот же вопрос возник. Думаю пойду в коменты напишу такую же мысль. Но наткнулся на ваш коммент...смысла повторятся нету. Тоже не понял какая суть наследования интерфейса от интрфейса. Возможность есть лимит количества интерфейсов которые клас может имплемнтировать, тогда в этом есть смысл...а так :/
@vladoss4643 Жыл бұрын
@@ДенисВербіцький-ц8ц ну. Какой смысл я нашёл теперь. Наследование интерфейсов коллекций. В с# есть куча вариантов: IList, ICollection, IEnumerable, IEnumerable и тд... И, как я понимаю, как-то там всё это хитро завязано. Различные комбинации этих интерфейсов оказываются разными коллекциями, типо List, Array, ArrayList и далее. Возможно, там ответ)
@Neroz49rujka3 жыл бұрын
ochen` horosho ! big up!
@tesarotawer43903 жыл бұрын
Оп, еще одно крутое начало недели!
@sergeykail61323 жыл бұрын
Класс. понятно и четко
@ДмитрийАлексеев-ж1г3 жыл бұрын
Сергей, я тебя благодарю!
@blackcreeper53143 жыл бұрын
Спасибо большое
@W_O_I_F3 ай бұрын
2024 август начинаю писать код заранее не дослушав автора - ИДЕ сама все подставляет. У меня такое подозрение что Вижла смотрит этот курс)))
@blackgolddev40233 жыл бұрын
Шикарно)))) я ждал этого урока))))
@shomagasanov81063 жыл бұрын
спасибо огромное за уроки) особенно за "Фьють")))) орал))
@steb1hp3 жыл бұрын
Здравствуйте Сергей у меня к вам вопрос вы в одном своем видео рассказываете про книги С# так вот как вы считаете стоит ли брать книги для новичков если уже имеется некое понимание языка в рамках просмотра вашего курса?
@ivannebyshynets88293 жыл бұрын
Awesome!
@ОлександрСатанівський-п3в2 жыл бұрын
В этом уроке мы обсудим тему наследования интерф
@redtred77043 жыл бұрын
Спасибо за урок! Сергей, скажите, появятся ли в ближайшем будущем домашние задания?
@energy62473 жыл бұрын
Thank you)
@ИванДраго-о1щ2 жыл бұрын
Хыщ и Фьють это пять !)
@Banzaaaa3 жыл бұрын
Очень круто, а главное доступным языком. У меня тут много вопросов сразу. Я так понимаю что последние уроки сделаны на основе паттернов. Есть возможность озвучить их, описать или это предмет следующих лекций? И парадокс, у нас возможно оружие котороe не содержит метода Fire() (Огонь для ножа уже звучит странно). Т.е. нам нужен родительский интерфейс, желательно пустой без деклараций вовсе. Для того что бы при появлении нового оружия не тащить возможно избыточный контракт. Но при этом экземпляры должны наследоваться от него (Архи интерфейса) для контроля входных данных. Такие пустые интерфейсы возможны или это нарушает принципы ООП?
@funny_nuts3 жыл бұрын
Ну назови метод не Fire(), а Attack() например если смущает выстрел ножом. Это всего лишь название метода, который скрыт для конечного пользователя. Да и логику к примеру для гранат, проще реализовать через готовый метод , тк по сути бросок гранаты - это такое же действие как и выстрел (атака), а как оно будет реализовано зависит от конкретного типа оружия.
@Banzaaaa3 жыл бұрын
Andrew Olsen О это очень простой вопрос. А твой ответ очень сильно уводит в сторону от действительной проблематики ООП и решений с помощью интерфейсов. Вместо более строгой классификации и решений в рамках глубокой архитектуры и гибкости управления через интерфейсы. Ты предлагаешь ситуативный расширяющий костыль. А что если наше оружие не производит атаку а? Например создаёт защиту или лечит или это РЛС или РЭБ. Тогда нам понадобится метод Action() или DoSome() ну что бы вместить все логические понятия. Ой подожди это тоже не походит, ведь наше оружие может вовсе не совершать каких-либо действий. Например просто давать +15hp или создавать ауру и прочее прочее. В моем вопросе уже есть ответы.
@funny_nuts3 жыл бұрын
@@Banzaaaa лол што? Оружие которое не производит атаку и лечит?? Я бы охренел если бы в ААА шутере я кинул гранату в толпу врагов, а она бы их всех вылечила ))) Ты вообще в курсе что такое оружие? Или в гугле забанили? Оружие в принципе придумано для того чтобы наносить повреждения. Это свойство присутствует у ЛЮБОГО оружия ДАЖЕ когда оно сломано или разряжено.. И неважно какого типа урон оно наносит, физический, магический или даже ментальный, на то оно Б**ТЬ и оружие!!! РЛС это вообще гребаный радар весом в ТОННУ минимум!!! Как ты его в инвентарь поместишь???? РЭБ вообще это не предмет даже. Просто фейспалм на всё лицо...
@fsewcdv3 жыл бұрын
примеры супер
@АнонимМ-н2г3 жыл бұрын
Как всегда топово!
@meelstorm903 жыл бұрын
Спасибо большое!
@АндрейВсе-е6т3 жыл бұрын
Здравствуйте! Подскажите пожалуйста: по первому видео "плюшки с#" хотел создать библиотеку классов, но у меня нет шаблона class library. Как подключить шаблон или чем заменить его? Visual Studio 2019
@ruslanelzhirkaev35383 жыл бұрын
Братишка ты лучший
@oiei27673 жыл бұрын
спасибо
@Grapeoff3 жыл бұрын
Спасибо!
@Pptshnica3 жыл бұрын
Сергей, а ты даешь индивидуальные занятия, если есть конкретные запросы и сколько это стоит?
@mvzex3 жыл бұрын
Сколько примерно уроков до конца курса осталось?
@БогданШилов-ж3ч3 жыл бұрын
Учитывая,что курс по с++ был на более,чем 200 уроков,а этот курс планируется больше,то будет ещё 100-150 уроков. Наверное.... Надеюсь.
@Vr1cK-d2l Жыл бұрын
@@БогданШилов-ж3ч не повезло
@ВасилийПудов-в7д3 жыл бұрын
Привет. А плюшки новичкам пока стоит смотреть или лучше сначала пройти курс?
@donlinoleum8313 жыл бұрын
Друзья, я верно понял основной посыл, что главное отличие абстрактного класса, с абстрактными методами в нем, от интерфейса это именно возможность множественного наследования у интерфейсов? А за видос большое спасибо)
@Banzaaaa3 жыл бұрын
Да но немножко сложнее. У ExtrimeCode есть ролик на тему проблематики ООП. Если вкратце Интерфейсы позволяют создать наследование не в контексте глубокой иерархии, а как бы сбоку. Т.е. только те наследники которые должны реализовывать что-то без привязки к иерархии. И в этом смысле методы по умолчанию для интерфейсов хоть и нарушают парадигму, но дают широкий инструментарий программисту.
@makasin23933 жыл бұрын
Пушка : )
@mayakovsky8102 жыл бұрын
Сделайте ролик по виртуальным классам пожалуйста. Очень интересно
@ЕвгенийЕмельянов-п2ы9 ай бұрын
я посмотрел. все ок
@pavelkross3 жыл бұрын
спасибо. очень жду wpf
@хыых-м2т3 жыл бұрын
Здравствуйте Сергей, у меня вопрос. Можно как то программу написать в кейсы?
@Дебошир-е2ч3 жыл бұрын
Какой шрифт вы используете?
@romant23942 жыл бұрын
Дякую за урок! Є два запитання: 1) Як у вас ситуація, всі цілі, все гаразд із близькими та рідними? 2) Чи є якийсь сенс реалізовувати для ножа логіку Fire, якщо він ніколи не буде її використовувати. Тобто, чи є інша опція поєднати IWeapon і IThrowingWeapon, при цьому уникнути написання зайвої додаткової логіки яка займає місце і (напевно) дає більше навантаження на систему? Знову ж таки, який сенс робити реалізацію методу Fire який, за вашими словами, може займати багато рядків коду та виконувати особливу логіку при тому, що він ніколи не буде використаний. Як обійти цю ситуацію? Чекаємо на нові відео та пояснення, дуже вдячний за вашу працю. Вивчуся і почну заробляти, я - ваш постійний патрон
@valentyn43672 жыл бұрын
А коли вийдуть нові уроки?
@ВалентинГандрибіда2пі-23б2 жыл бұрын
зроби будь ласка урок про ключове слово yield
@КириллСилин-п4т3 жыл бұрын
коммент для продвижения
@ignisfeuer3 жыл бұрын
желательно от пяти слов комменты делать для этого.
@shlopaiushiy-po-popke3 жыл бұрын
я свечку поставлю за развитие канала
@Mr.ESCANOR.3 жыл бұрын
ЗДРАСТВУЙТЕ подскажите на кого сейчас актуально отучиться и реально после обучения трудоустроиться??? И где учиться 1.Гик Брейнс 2.Яндекс практикум 3. Скилбокс Или же есть чтото иное где можно получить достойное образование в сфере програмирования и работать обеспечивая семью??????7 Буду рад помощи не равнодушных Всем спасибо за ответы.
@madmax64763 жыл бұрын
Меня тоже интересует данный вопрос, будем ждать, может кто-нибудь и ответит
@hutoryanin3 жыл бұрын
*Л. а. й. к.*
@gopnikkasarj67977 ай бұрын
я вот не понимаю, интерфейсы, как я понял, должны обосновывать всё и вся, например такие как поверхность любого объекта, а тут конкретный класс, так тоже можно что ли?
@yomi_yori12 күн бұрын
Я сам только обучился до этого видео и моих знаний не супер много, но могу объяснить так. Интерфейсы описывают общие характеристики и возможности довольно разных между собой объектов. Например мы описываем человека и машину. Это довольно разные объекты, но общее у них, это скорость. В данном видео, Сергей пытается донести до нас как работают интерфейсы и как их использовать. Но как по мне, РИСКНУ преположить, тут можно и СКОРЕЕ ВСЕГО нужно использовать абстрактный класс. Ваш вопрос был задан 6 месяцев назад, как проходит ваше обучение? Возможно вы уже знаете ответ на свой вопрос. Если я где-то не прав, то поправьте меня пожалуйста!
@gopnikkasarj679712 күн бұрын
@@yomi_yori да, уже немного прошаренный, абстрактный класс описывает сущность обьект, а конкретно поля класса и методы, а интерфейс лишь как метод, то есть он лишь нужен для реализации какого то функционала, а абстрактный класс сущность. Я хоть давно это проходил, надеюсь что правильно разъяснил, что да как.
@yomi_yori11 күн бұрын
@@gopnikkasarj6797 спасибо большое, вы понятно объяснили!
@АнтонЕлумеев3 жыл бұрын
Судя по количеству лайков в начале плейлиста и в конце, не все добрались до конца))))))