Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =) ✅Доступ к исходному коду и спонсорство www.patreon.com/SimpleCode ✅ donatepay.ru/don/SimpleCode ✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
Почему не было такого преподавателя в универе??( Я исписал больше листов, написал больше программок, нежели за все время обучения в универе. Уже 45 листов А4 с двух сторон, 45 страниц настоящего сокровища! Книги это хорошо, но гораздо лучше записывать и все излагать для себя своим языком по этим урокам. Вроде все это проходил, но как то не вникал. А сейчас я каждое слово понимаю, наконец-то, с жадностью информацию поглощаю. Я наконец-то стал понимать суть ООП. Если бы такие преподаватели были в каждом вузе и каждой школе, эх. Спасибо вам огромное!
истину глаголишь. в вузе преподу абсолютно все равно, не объясняет, но требует. как бы классика для вуза, тебе дают 20%, 80% учишь сам, но хочется, чтобы учили, а не просто приходил отсидеть пару..
Спасибо! отличная подача материала и приятный лектор. Очень жаль что пропали домашние задания, они реально помогали - как способ закрепления материала, мотивация практики и как возможность посмотреть на ваше решение поставленной задачки, стиль и чистоту написания. Получал заряд бодрости и эндорфинов, когда моё и ваше решение практически совпадали
Добрый день! Вы ПРЕКРАСНО ведете ВСЕ уроки. Я читаю C# студентам не первій год. И всем рекомендую только Ваши уроки. Кратко. Понятно. Без сленга! Просто идеально! Спасибо.
Полезное видео, и надеюсь не последнее на тему полиморфизма, тема всё-таки достаточно большая, было бы здорово рассказать про паттерн "Стратегия" ведь это чистейший полиморфизм. Ну и разновидности полиморфизма тоже пригодились бы..
Интерестно, что в Java это работает "по умолчанию" (10:47). Сначала изучал просто Java, теперь понадобилось перейти на C#, Ваши уроки сильно помогают, но периодически наталкиваюсь на такие ньюансы. Спасибо за Ваш труд.
Ловите ДЗ: В окне приложения первоначально появляются 4 поля ввода, относящиеся к двум категориям: Если пользователь вводит в поле ввода первой категории символ, соответствующий латинской букве, то этот символ в строке появляется дважды. Если пользователь вводит в поле ввода второй категории символ, соответствующий цифре, то в поле ввода кроме этого символа появляется слово, соответствующее этой цифре. Когда строка, содержащаяся в поле ввода, становится длиннее 50 символов, такое поле ввода меняет свое поведение, независимо от категории: при вводе любого символа в строке исчезает первый символ. Различия в поведении полей ввода реализовать с помощью полиморфизма.
@@HATAHKE762 Задание очень интересное. Будет время - реализую код и отправлю сюда. Ну, а пока мне в голову единственное, что приходит в голову как это сделать - через try catch запарсить строку в int. Не получается - действие со строкой. Удалить первый символ - проще простого, т.к. строку можно перевести в char-массив и там уже удалять.
@@HATAHKE762 class PrintDate // класс вывода информации. { public void PrintD(PrintString print, string value) // сам метод, который принимает в себя класс PrintString и его наследников { print.Print(value); // вывод информации } } class PrintString // прародитель остальных классов - вывод строки. { public virtual void Print(string value) // метод вывода { for (int i = 0; i < value.Length; i++) // проверка символов внутри строки { if (((value[i] >= 'a') && (value[i] = 'A') && (value[i] = 50) // если длина сообщения равна 50 или больше - применяется метод класса BigDate print.PrintD(new BigDate(), valueDate); else // иначе как... { try // будет попытка перевести строку в число { int.Parse(valueDate); print.PrintD(new PrintInt(), valueDate); // удача - используем метод класса PrintInt } catch (Exception) // в ином случае это будет строка и тогда... { print.PrintD(new PrintString(), valueDate); // используем метод класса PrintString. } } } }
Спасибо, я ставлю всегда лайк, обесняете классно, но, все же я хочу сказать, мышку на экране быстро скролом двигаете вверх вниз, туда сюда, не надо а то глаза бегает не успевает.
блин именно в этот день у меня был собес на автоматизатора тестов на C# и там спрашивали про эту тему а я дурак не повторил и мог бы утром этот видос чекнуть и он бы меня спас, а так по мне я плохо отстрелялся, но будет видно, нет - так нет, буду больше стараться
Прекрасные уроки, Сергей. Спасибо огромное за доступные и интересные уроки! Не подумайте, что я пытаюсь вас учить, просто мое пожелание (и думаю, другим бы тоже понравилось): домашние задания. Раньше вы их уже периодически предлагали, но перестали. Возможно, из-за малого количества обратной связи прекратили, может по другим причинам, но мне кажется, что их очень не хватает. Я не предлагаю сильно заморачиваться и делать аж по отдельному ролику для разбора каждой домашки, но было бы славно, если бы вы предлагали подписчикам написать то или это на основе имеющихся у них знаний. Даже хотя бы просто предложить небольшой перечень задачек на условном codewars. Разбирать их в дальнейшем вовсе не обязательно - кто захочет, тот сделает. Ваши уроки очень информативны, но недостаток практики сказывается. Говорю из собственного опыта, потому что недавно решил написать что-то вроде ежедневника для консоли с возможностью сохранения, загрузки и редактирования записей, но изломал себе всю голову в процессе. Необходимые знания сами по себе имеются, но из-за того, что практического применения они не до сего момента не находили, очень трудно понять, что-где-когда делать. В итоге просто теряешься.
На данном примере, Можно было не переопределять startengine() в SportCar, там можно использовать метод и без override. Но как для лучшего понимания материала, спасибо!
Очень удобная вещь, но, как я понял, невозможно переопределить метод дважды? Если создадим еще какой-нибудь класс GreenSportCar и унаследуем его от SportCar, переопределим метод override void Drive(), то при вызове этого метода у базового класса будет выполняться реализация SportCar и игнорироваться новая реализация в GreenSportCar? Было бы очень сподручно найти решение этой проблемы, так как мне для проекта необходимо потенциально бесконечно расширяемое дерево наследования классов, в котором каждый класс сможет переопределить свои методы так, чтобы при вызове их в переменной базового класса вызывалась самая последняя переопределенная реализация у этого экземпляра.
если от класса наследника (в котором мы переопределили виртуальный метод) привестись к базовому классу, то всёравно будет вызван переопределённый метод из класса наследника
Сергей, спасибо за работу! Есть небольшая просьба от человека с проблемами по зрению: если Вас не затруднит, не могли бы Вы при записи роликов использовать какую-нибудь светлую контрастную тему для VS?
Здравствуйте, подскажите пожалуйста. Дело в том что в своих урока по C++ вы используете VS. Но к сожалению версии VS под линукс нету, поэтому я хочу выбрать какой нибудь другой IDE. Так вот у меня в будущем не возникнут из-за этого проблемы?
Сергей,как думаете нужно много знать Си шарп что бы создавать игры?Я именно об знаниях, вы когда ни будь занимались Играми?И еще один вопрос Xamarin хуже чем Kotlin,ReactNative,Java?
я чутка не понял по поводу new. допустим в базовом классе есть метод Print public void Print() { Console.WriteLine(name); Console.WriteLine(age); Console.WriteLine(weihgt); Console.WriteLine(height); } если в дочернем классе мы добавим 2 новых поля(CastSpeed и Speed) и напишем public new void Print() { base.Print(); Console.WriteLine(CastSpeed); Console.WriteLine(Speed); } то в консоль выведется 6 параметров. 4 параметра из основного класса(name,age,weight,height) и 2 из наследника(CastSpeed,Speed). а если мы в дочернем классе напишем public new void Print() {
Console.WriteLine(CastSpeed); Console.WriteLine(Speed); } то в консоль выведется только 2 параметра из дочернего класса. так в чем же отличие в данном виде переопределения метода с оператором new,от virtual\override? не могу сообразить,хоть убейте))) пример написал из своего кода. писал в VS и так и так,и оба варианта работают.
@@pavlom8882 уже узнал, но бросил программирование, в общем, язык с# состоит из ключевых слов и конструкций, например классы, методы, поля, например в юнити все эти конструкции так же используются, просто функционал может быть разный. Изучай движок и язык с#, потом ты поймёшь что для чего, удачи. Так же в юнити присутствует свои классы и методы которые стоит изучить.
Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)
✅Доступ к исходному коду и спонсорство www.patreon.com/SimpleCode
✅ donatepay.ru/don/SimpleCode
✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
da vse zdelayem Gospodin SERGEY , sposibo za vashi uroki no proshu vas ochen proshu nemnochko po bistreeye kinte vido ostalnoe proshu ochen sposibo
Будут ли отдельные видео по пятерному проектированию ?
Порождающие, Структурные, Поведенческие.
Паттерны разработки: MVC vs MVP vs MVVM vs MVI?
SOLID?
Почему не было такого преподавателя в универе??( Я исписал больше листов, написал больше программок, нежели за все время обучения в универе. Уже 45 листов А4 с двух сторон, 45 страниц настоящего сокровища! Книги это хорошо, но гораздо лучше записывать и все излагать для себя своим языком по этим урокам. Вроде все это проходил, но как то не вникал. А сейчас я каждое слово понимаю, наконец-то, с жадностью информацию поглощаю. Я наконец-то стал понимать суть ООП. Если бы такие преподаватели были в каждом вузе и каждой школе, эх. Спасибо вам огромное!
истину глаголишь. в вузе преподу абсолютно все равно, не объясняет, но требует. как бы классика для вуза, тебе дают 20%, 80% учишь сам, но хочется, чтобы учили, а не просто приходил отсидеть пару..
Капитан Молдова, как ваши успехи?)
Как всегда, спасибо лучшему учителю по программированию за отличный урок!
Спасибо, из-за "Рон дон дон" я теперь хорошо запомнил как работает virtual и override))))))😀
Сергей, салют! Благодарю!
Этот урок поднял мне настроение, и я даже кое-что понял!
Хочу выразить благодарность данному сенсею за отличный урок
Как прекрасны понедельники. Спасибо за урок!
Спасибо! отличная подача материала и приятный лектор. Очень жаль что пропали домашние задания, они реально помогали - как способ закрепления материала, мотивация практики и как возможность посмотреть на ваше решение поставленной задачки, стиль и чистоту написания. Получал заряд бодрости и эндорфинов, когда моё и ваше решение практически совпадали
Спасибо за очередное видео. За книги из прошлого видео тоже спасибо, очень полезные оказались.
Ура, ну наконец то полиморфизм, долго ждал конечно
Ждал с нетерпением:)
Лайк не глядя и комментарий в поддержку)
Спасибо большое за урок!
Спасибо за ваши уроки!
Оставлю комментарий для продвижения канала.
Очень крутые уроки!! ❤️❤️❤️
И снова огромная благодарность за урок, Сергей! Кстати, я скачал книги, посоветованные тобой, и стараюсь изучать.
Было сложно но кое что понял)
gospodin SERGEY proshuu vass ochen pobistree kinte vashi video ochen prosimm ochenn nado vsee sposibo za vsex vash video lessonss thenks
Добрый день!
Вы ПРЕКРАСНО ведете ВСЕ уроки. Я читаю C# студентам не первій год. И всем рекомендую только Ваши уроки. Кратко. Понятно. Без сленга! Просто идеально! Спасибо.
Полезное видео, и надеюсь не последнее на тему полиморфизма, тема всё-таки достаточно большая, было бы здорово рассказать про паттерн "Стратегия" ведь это чистейший полиморфизм. Ну и разновидности полиморфизма тоже пригодились бы..
дякую автору за хороший матеріал, все зрозуміло і розбито на окремі уроки
Спасибо тебе за то что продолжаешь уроки по с# очень помогаешь в развитии
))))
Спасибо Сергей!
Такие уроки, где легко понять смысл, мне очень нравятся.
Как всегда все на высшем уровне!
Ура! Спасибо)
То чуство когда здесь более подробнее чем на зарубежных курсах
Какие же шикарные уроки
С вами я выучил си шарп и теперь могу делать свою игру
С первой прибыли обязательно поделюсь)
как успехи?
@@avito34 в процессе
Очередное огромное спасибо за видео!
Большое спасибо за уроки. С такой подачей материала не полюбить программирование просто невозможно.
Благодаря вашим урокам многие из лабораторных работ по программированию могу делать и понимать хорошо! Спасибо вам огромное за ваш труд!
я только сегодня прошел эту тему и ты выложил этот ролик!!Благодарю💓
Коммент для продвижения канала!
Интерестно, что в Java это работает "по умолчанию" (10:47). Сначала изучал просто Java, теперь понадобилось перейти на C#, Ваши уроки сильно помогают, но периодически наталкиваюсь на такие ньюансы. Спасибо за Ваш труд.
Возможно Ява более высокоуровневый.
Красавчик, спасибо ❤️
Приятно , когда темы получается хорошо понять !) Спасибо за урок !
Это просто лучшее объяснение, раньше не особо их юзал так как не понимал преимущества, спасибо сенсей, открыл глаза
Огромное спасибо за полезнейшие уроки !!!
Спасибо за знания.
Уроки действительно хорошие
Очень хорошо объясняется. Надо своим студентам ссылку на ваш канал кинуть - пусть штудируют..
Чел, ты лучший. Спасибо за понятную подачу материала! Коммент для продвижения
Ты невероятно крутой препод. Канал просто находка для новичков. Пожалуйста не бросай выпускать видосы!
На второй раз понятнее ). Спасибо за отличный урок Сергей!
спасибо за урок!
Очень круто, спасибо! Я бы хотел домашние задания в последующих уроках.
Согласен, тоже жду ДЗ.
Ловите ДЗ:
В окне приложения первоначально появляются 4 поля ввода, относящиеся к двум категориям: Если пользователь вводит в поле ввода первой категории символ, соответствующий латинской букве, то этот символ в строке появляется дважды. Если пользователь вводит в поле ввода второй категории символ, соответствующий цифре, то в поле ввода кроме этого символа появляется слово, соответствующее этой цифре. Когда строка, содержащаяся в поле ввода, становится длиннее 50 символов, такое поле ввода меняет свое поведение, независимо от категории: при вводе любого символа в строке исчезает первый символ. Различия в поведении полей ввода реализовать с помощью полиморфизма.
@@HATAHKE762 Задание очень интересное. Будет время - реализую код и отправлю сюда. Ну, а пока мне в голову единственное, что приходит в голову как это сделать - через try catch запарсить строку в int. Не получается - действие со строкой. Удалить первый символ - проще простого, т.к. строку можно перевести в char-массив и там уже удалять.
@@HATAHKE762
class PrintDate // класс вывода информации.
{
public void PrintD(PrintString print, string value) // сам метод, который принимает в себя класс PrintString и его наследников
{
print.Print(value); // вывод информации
}
}
class PrintString // прародитель остальных классов - вывод строки.
{
public virtual void Print(string value) // метод вывода
{
for (int i = 0; i < value.Length; i++) // проверка символов внутри строки
{
if (((value[i] >= 'a') && (value[i] = 'A') && (value[i] = 50) // если длина сообщения равна 50 или больше - применяется метод класса BigDate
print.PrintD(new BigDate(), valueDate);
else // иначе как...
{
try // будет попытка перевести строку в число
{
int.Parse(valueDate);
print.PrintD(new PrintInt(), valueDate); // удача - используем метод класса PrintInt
}
catch (Exception) // в ином случае это будет строка и тогда...
{
print.PrintD(new PrintString(), valueDate); // используем метод класса PrintString.
}
}
}
}
Объяснения топ, коротко и по сути, спасибо !
Благодаря этому человеку я наконец начал понимать ооп) благодарю за уроки )
Привет, прошел год. Есть успехи?
Спасибо Сергей!, очень надеюсь на 105 видос.
Как всегда спасибо)
Спасибо вам огромное за подобные видео! Очень полезно
Сподіваюсь з автором все добре. Дуже корисні відео, мені вони дуже допомогли в розумінні матеріалу. Шаную вашу працю.
Спасибо за отличные уроки!
Благодарю за отличный урок!
Супер понятно
Лукас и коммент в поддержку канала!)
Очень крытые видосы. Подойдут для закрепления материала!)
Спасибо!!!
спасибо
Ура!!
Great! Thanx so much!
ура я нашла ещё один толковый источник по программированию
Сергей, сделайте, пожалуйста, уроки по Git
Спасибо большое!
Большое спасибо за видео, было бы круто увидеть выпуск про абстрактные классы
ты тоооооооооооооооооооооооооооооп!!!!!
благодарю
Спасибо)
Спасибо, я ставлю всегда лайк, обесняете классно, но, все же я хочу сказать, мышку на экране быстро скролом двигаете вверх вниз, туда сюда, не надо а то глаза бегает не успевает.
Спасеба :D
Братишка ты лучший!!!
блин именно в этот день у меня был собес на автоматизатора тестов на C# и там спрашивали про эту тему а я дурак не повторил и мог бы утром этот видос чекнуть и он бы меня спас, а так по мне я плохо отстрелялся, но будет видно, нет - так нет, буду больше стараться
Спасибо большое! продвигаю)))
Однозначно лайк!!!
Шикарно
Прекрасные уроки, Сергей. Спасибо огромное за доступные и интересные уроки! Не подумайте, что я пытаюсь вас учить, просто мое пожелание (и думаю, другим бы тоже понравилось): домашние задания. Раньше вы их уже периодически предлагали, но перестали. Возможно, из-за малого количества обратной связи прекратили, может по другим причинам, но мне кажется, что их очень не хватает.
Я не предлагаю сильно заморачиваться и делать аж по отдельному ролику для разбора каждой домашки, но было бы славно, если бы вы предлагали подписчикам написать то или это на основе имеющихся у них знаний. Даже хотя бы просто предложить небольшой перечень задачек на условном codewars. Разбирать их в дальнейшем вовсе не обязательно - кто захочет, тот сделает.
Ваши уроки очень информативны, но недостаток практики сказывается. Говорю из собственного опыта, потому что недавно решил написать что-то вроде ежедневника для консоли с возможностью сохранения, загрузки и редактирования записей, но изломал себе всю голову в процессе. Необходимые знания сами по себе имеются, но из-за того, что практического применения они не до сего момента не находили, очень трудно понять, что-где-когда делать. В итоге просто теряешься.
"Рон дон дон" 👍
👍
🤝
На данном примере, Можно было не переопределять startengine() в SportCar, там можно использовать метод и без override.
Но как для лучшего понимания материала, спасибо!
Давай ролик про рефлексию.
коммент для продвижения
Очень удобная вещь, но, как я понял, невозможно переопределить метод дважды? Если создадим еще какой-нибудь класс GreenSportCar и унаследуем его от SportCar, переопределим метод override void Drive(), то при вызове этого метода у базового класса будет выполняться реализация SportCar и игнорироваться новая реализация в GreenSportCar? Было бы очень сподручно найти решение этой проблемы, так как мне для проекта необходимо потенциально бесконечно расширяемое дерево наследования классов, в котором каждый класс сможет переопределить свои методы так, чтобы при вызове их в переменной базового класса вызывалась самая последняя переопределенная реализация у этого экземпляра.
😍
если от класса наследника (в котором мы переопределили виртуальный метод) привестись к базовому классу, то всёравно будет вызван переопределённый метод из класса наследника
I move to fast on the gas, don't chase me!
Сергей, спасибо за работу! Есть небольшая просьба от человека с проблемами по зрению: если Вас не затруднит, не могли бы Вы при записи роликов использовать какую-нибудь светлую контрастную тему для VS?
Подскажите пожалуйста, для того что бы изучить плюсы, обязательно нужно начинать с СИ?
Здравствуйте, подскажите пожалуйста. Дело в том что в своих урока по C++ вы используете VS. Но к сожалению версии VS под линукс нету, поэтому я хочу выбрать какой нибудь другой IDE. Так вот у меня в будущем не возникнут из-за этого проблемы?
эрон дон дон))) Спасибо ;-)
Рон дон дон!
Сергей,как думаете нужно много знать Си шарп что бы создавать игры?Я именно об знаниях, вы когда ни будь занимались Играми?И еще один вопрос Xamarin хуже чем Kotlin,ReactNative,Java?
если до сюда дошел - простенькие можешь, много же видосов с созданием игр
я чутка не понял по поводу new. допустим в базовом классе есть метод Print
public void Print()
{
Console.WriteLine(name);
Console.WriteLine(age);
Console.WriteLine(weihgt);
Console.WriteLine(height);
}
если в дочернем классе мы добавим 2 новых поля(CastSpeed и Speed) и напишем
public new void Print()
{
base.Print();
Console.WriteLine(CastSpeed);
Console.WriteLine(Speed);
}
то в консоль выведется 6 параметров. 4 параметра из основного класса(name,age,weight,height) и 2 из наследника(CastSpeed,Speed). а если мы в дочернем классе напишем
public new void Print()
{
Console.WriteLine(CastSpeed);
Console.WriteLine(Speed);
}
то в консоль выведется только 2 параметра из дочернего класса. так в чем же отличие в данном виде переопределения метода с оператором new,от virtual\override? не могу сообразить,хоть убейте))) пример написал из своего кода. писал в VS и так и так,и оба варианта работают.
Я вопрос твой не могу понять)
Здравствуйте Сергей. А сколько примерно ещё будет серий?
Автор а как с вами можно связаться что бы вы мне с вашим богатым опытом помогли пофиксить одну программу?
Вся жизнь машина , а ты в нем Рон Дон Дон
Извините , а что это за проект консольное приложение или что??
что мешает мне просто переопределить функцию ....а понял. Читаете мысли шеф
Привет SimpleCode, не хотел бы запилить курс именно с# для Unity?
спасибо.
Я б тоже хотел его..
@@pavlom8882 уже узнал, но бросил программирование, в общем, язык с# состоит из ключевых слов и конструкций, например классы, методы, поля, например в юнити все эти конструкции так же используются, просто функционал может быть разный. Изучай движок и язык с#, потом ты поймёшь что для чего, удачи. Так же в юнити присутствует свои классы и методы которые стоит изучить.
единственный человек который поставил дизлайк, я знаю ты это читаешь! убери его!