Изучение c# на примерах

Формула программиста
основатель — Волосатов Евгений Витольдович
У вас нет доступа для просмотра этой записи.

Получить доступ

Теория ООП

Практический курс по теории Объектно-ориентированного программирования.
С нуля создаётся проект по рисованию различных геометрических фигур,
которые потом объединяются в спрайты, взаимодействуют друг с другом.

Во время создания проекта постоянно применяется рефакторинг кода,
при этом демонстрируются приёмы Объектно-ориентированного программирования.

Во второй части курса мы проработаем понятие Интерфейса.

Объём: 39 коротких видеоуроков
Время: 7 часов 40 минут.
Доступ на 30 дней.

3000 руб.


Для подписки на пакет необходимо авторизоваться.

Список уроков | фото | видео

# Название видеоурока Решило Рейтинг Доступ
1 Инкапсуляция мечты 00:09:02 99 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Инкапсуляция - способ хранения информации, при котором из вне доступны лишь разрешенные методы и свойства, а вся реализации закрыта от внешнего доступа. 
Сложности: Ничего 
Комментарии: Спасибо) 
2 Урок рисования 00:08:10 95 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 30 мин. [Показать отчёт]
Научился: Рисовать на Си шарп. 
Сложности: Ничего. 
Комментарии: Спасибо 
3 Первый класс 00:09:53 88 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 30 мин. [Показать отчёт]
Научился: Делали уже 
Сложности: Ничего 
Комментарии: Спасибо) 
4 Второй класс 00:09:13 84 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 15 мин. [Показать отчёт]
Научился: Уже такое делали 
Сложности: ничего 
Комментарии: Спасибо)) 
5 Круглый класс 00:08:10 81 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Рисовать окружность в Си шарп) 
Сложности: ничего 
Комментарии: Спасибо) 
6 Структура пикселя 00:10:55 70 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 30 мин. [Показать отчёт]
Научился: Работать со структурами 
Сложности: ничего 
Комментарии: Спасибо) 
7 Структура vs Класс 00:25:05 63 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Отличиям структуры от класса 
Сложности: Ничего 
Комментарии: По поводу отсутствия конструктора по умолчанию у структуры, есть хорошая статья на хабрахабр: https://habrahabr.ru/post/152118/ 
8 Пиксели для классов 00:14:44 60 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 30 мин. [Показать отчёт]
Научился: Вызову конструктора из другого конструктора через this 
Сложности: ничего 
Комментарии: Спасибо 
9 Расстояние между пикселями 00:12:12 60 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Всегда вызывать конструктор из конструктора)) 
Сложности: ничего 
Комментарии: Спасибо) 
10 Цветные карандаши 00:14:54 58 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Наследовать конструктор (:base) для упрощения кода. 
Сложности: ничего 
Комментарии: Спасибо 
11 Рисуем Снеговика 00:14:40 57 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Так уже рисовали) 
Сложности: ниего 
Комментарии: Спасибо) 
12 Второй Снеговик 00:09:46 57 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Это делали) 
Сложности: ничего 
Комментарии: Спасибо) 
13 Богатое наследство 00:12:53 56 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 15 мин. [Показать отчёт]
Научился: Наследование - полный перенос атрибутов и методов класса родителя в класс наследника. 
Сложности: ничего 
Комментарии: Спасибо) 
14 Фигуральный базовый класс 00:10:56 55 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 30 мин. [Показать отчёт]
Научился: Определить класс shape, как абстрактный. В нем определить метод drow. Переопределить метод drow в классах остальных фигур. 
Сложности: ничего 
Комментарии: Спасибо) 
15 Рисователь снеговиков 00:11:51 55 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Использованию метода GetType(). 
Сложности: ничего 
Комментарии: спасибо 
16 Переезд метода Draw 00:11:54 55 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Способу задания аттрибутов объекта не напрямую, а через отдельные методы (SetGraphics, SetPen). При этом у атрибутов graphics, pen модификатор доступа может быть priivate. 
Сложности: ничего 
Комментарии: спасибо 
17 Переезд graph в базовый класс 00:13:10 55 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Использованию модификатора доступа protected. (при работе с наследованием) 
Сложности: ничего 
Комментарии: спасибо 
18 Мощь полиморфизма 00:09:01 53 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Основам полиморфизма (работе с virtual) 
Сложности: ничего 
Комментарии: Спасибо) 
19 Спрайт для Снеговика 00:12:28 53 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Вариантам наследования(от класса Shape наследуется как класс Sprite, так и классы фигур из которых состоит Sprite) 
Сложности: ничего 
Комментарии: Спасибо 
20 Перемещение круга 00:11:42 53 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Применил virtual. (проверил его работу) 
Сложности: ничего. 
Комментарии: Считаю, что удобнее инициализировать position=startPosition в конструкторе, а далее в методу move изменять только position и при рисовании перемещать фигуру на (position). Таким образом мы имеем базовую точку не привязанную к нулю, а в привязанную к фигуре. PS у снеговика position считал как среднее значение координат все фигур спрайта.(на фото отмечена окружностью с R=1 ) Спасибо. 
21 Перемещение других фигур 00:08:37 53 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: такое делали. 
Сложности: ничего 
Комментарии: Спасибо) 
22 Перемещение Снеговиков 00:10:48 52 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Такое уже делал 
Сложности: ничего 
Комментарии: Спасибо) 
23 ПОЛУФИНАЛЬНЫЙ УРОК. 46 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 10 мин. [Показать отчёт]
Научился: Евгений Витольдович спасибо Вам за Вашу работу) Видеокурс теория ООП составлен информативно и четко, раскрывает особенности написания программ на ООП языке программирования. Программы написанные таким образом являются читабельные, легко изменяемые и структурируемые. Что облегчит написание крупных проектов командой. 
Сложности: ничего 
Комментарии: Есть предложение объединить-укрупнить однотипные видеоуроки(например: перемещение окружности и перемещения линий и боксов), таким образом отчет будет, как бы, финальным аккордом к пройденной теме) 
24 Интерфейс. Зачем он нужен. 00:09:33 44 чел. ★ 4.9 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Интерфейс - структурная единица языка СИ#, которая определяет какие методы и свойства должен реализовывать класс его наследующий.  
Сложности: ничего 
Комментарии: cпасибо 
25 Интерфейс. Правила игры. 00:12:23 43 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 30 мин. [Показать отчёт]
Научился: Посмотрел, как работать с высоким уровнем абстракции. 
Сложности: ничего 
Комментарии: спасибо) Похоже SetLeader нужен аргумент Игрок(Player) 
26 Интерфейс. Алгоритм игры. 00:07:48 43 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 15 мин. [Показать отчёт]
Научился: Необходимо реализовать интерфейс Игрок в базовом классе Shape, после чего фигуры смогут будут гонятся друг за другом. 
Сложности: ничего 
Комментарии: спасибо) 
27 Интерфейс. Создаём кружок. 00:08:36 42 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 15 мин. [Показать отчёт]
Научился: такое уже делал 
Сложности: ничего 
Комментарии: спасибо 
28 Интерфейс. Площадка для игры. 00:11:58 41 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Что бы реализовать игру на pictureBox. 
Сложности: ничего 
Комментарии: спасибо) 
29 Интерфейс. Кружок на площадке. 00:11:49 41 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Сталкнулся с событием Refresh() у PictureBox 
Сложности: ничего 
Комментарии: Зачем надо событие Refresh()? Рисование ж происходит в объекте Graphics и после вызова DrawEllipce этого объекта окружность сразу же отображается на pictureBox.  
30 Интерфейс. Запускаем кружки на площадку! 00:11:49 40 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Увидел зачем нужен Refresh(), раньше создавал графику до инициализации формы поэтому и все работала без Refresh() 
Сложности: ничего 
Комментарии: спасибо 
31 Интерфейс. Кружок хочет играть. 00:09:42 40 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Тут уже запустил игру) 
Сложности: Найти ошибку. (голя искал в таблице игроков сам себя и выходил из foreach(breck), голю передавал сам себе) Обошелся условием if, но было бы правильнее переписывать список игроков каждый раз без учета голи. 
Комментарии: спасибо 
32 Интерфейс. Кружок готов к игре! 00:20:47 39 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: 1. Создать объекты арбитра и арены. 2.Добавить в объект арбитр игроков (перерисовывать picBox с каждым добавлением игрока). 3.Добавить на форму таймер. 4.Совершать шаги и перерисовывать picBox с каждым тиком таймера. 
Сложности: ничего 
Комментарии: спасибо 
33 Интерфейс. Кружочки гоняются друг за другом. 00:11:53 39 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Доработать класс судьи, внести в него локальную переменную, которая устанавливается в 3 (например) при вызове метода SetLeader и уменьшается до 0 с каждым тиком (вызовом Step), пока она не 0, SetLeader блокирован 
Сложности: ничего 
Комментарии: спасибо 
34 Интерфейс. Изменяем правила игры. 00:10:22 38 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Новая игра - попадать голей в другие шары, если голя не поменялся ты не попал. При этом Run необходимо переделать и привязать к стрелкам. 
Сложности: ничего 
Комментарии: спасибо 
35 Интерфейс. Создаём новую игру. 00:12:31 37 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 50 мин. [Показать отчёт]
Научился: Описание на скриншоте) 
Сложности: ничего 
Комментарии: спасибо) 
36 Интерфейс. ФИНАЛЬНЫЙ УРОК. 00:13:05 33 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Я писал уже ранее, но использовал 2 списка: здоровые, зараженные, перекидывая игроков между ними. С List.Contains выходит быстрее. 
Сложности: ничего. Но ваш код оказался побыстрее, чем мой. Я  
Комментарии: Спасибо большое за видеокурс Интерфейс, в котором очень информативно показаны преимущества Интерфейсов. Сразу возникает желание увеличивать код программ, начиная их написания с полной абстракции, в процессе их написания ради получения бонусов в виде легкого видоизменения и дополнения их в дальнейшем. Очень все полезно, класс!! 
37 Интерфейс. VIP. Квадратики тоже хотят играть. 00:16:23 34 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 50 мин. [Показать отчёт]
Научился: Еще раз увидел удобства интерфейсов и полиморфизма. 
Сложности: ничего 
Комментарии: спасибо 
38 Интерфейс. VIP. Пересечение прямоугольников. 00:09:47 32 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 20 мин. [Показать отчёт]
Научился: Такое уже делал) 
Сложности: ничего 
Комментарии: спасибо  
39 Интерфейс. VIP. Тяжёлая дружба кругов и квадратов. 00:22:25 26 чел. ★ 5 Done
  Отчёт отправил: 9590. Евгений Решено за 40 мин. [Показать отчёт]
Научился: См. видеообзор 
Сложности: ничего 
Комментарии: спасибо 
Видеообзор: https://youtu.be/WoZcFLnHtwM
  Итого:   39 видеоуроков общей продолжительностью 7 час. 40 мин. 26 чел. ★ 4.95  
  Финалисты:   lomik,   Роман,   Максим Базуев,   Neverwinter 2,   Владимир,   Никита,   Оля,   Валера Луцевич,   Anton Sozykin,   Permitin Alexey,   Артём,   Максим Лапшинов,   Frank,   Archi,   Александр Львович,   Ильшат,   Олег Михайлович,   Дмитрий,   Новопашин Владимир,   Евгений,   Сергей Соколов,   Александр Б.,   Максим Саратов,   Алексей В.,   Александр,   Rita .

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Создали новую игру на старом интерфейсе.
Трудности: Сложностей не возникло, но все новое.
Курс ООП очень понравился, познакомился с новыми понятиями "Инкапсуляция", "Наследование", "Полиморфизм". Научился создавать спрайты, а также создавать множество игр на одном интерфейсе. Планирую активно использовать полученные навыки на практике, в частности, при создании своей игры.
Научился: простоте модификации
Трудности: понять
Очень здорово! Я в восторге!