Курсы по программированию

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

Теория ООП / Фигуральный базовый класс

  • Очень хочется все элементы снеговика поместить в один массив.
    Сейчас это сделать нельзя - придётся делать три массива - для кругов, для линий, для боксиков...
    Решение гениальное - создаём базовый класс фигуры - Shape, создаём массив фигур, и все фигуры помещаем в этот массив!
    После размещения фигур в массив можно видеть, что каждая фигура в нём хранится не как фигура, а под своим типом.
    А все под одной крышей они могут находится потому что все они - фигуры, так как унаследованы от Shape.
  • Дата отправки отчёта: 5 февраля
  • Задание выполнено: за 15 мин.
  • Чему научился: Составлять массив из разных объектов, понравилось
  • Что было сложным: Ответить на вопрос.
  • Комментарии: В ответ на вопрос сделал такой велосипед:
                switch(shape.GetType().ToString())
                {
                    case "Теория_ООП.Box": Draw((Box)shape); break;
                    case "Теория_ООП.Circle": Draw((Circle)shape); break;
                    case "Теория_ООП.Line": Draw((Line)shape); break;
                }
    И он работает :)
  • Оценка видео-уроку:
Отчёт от 6696 за Теория ООП / Фигуральный базовый класс




Оцени работу

 
Сохранить страницу:

24. Оля
Оля
ответить
→  Владимир Борисенко  # Теория ООП / Фигуральный базовый класс / 2016-02-05 23:40

Владимир, здорово что сделал! :)


24. Оля
Оля
ответить
→  Владимир Борисенко  # Теория ООП / Фигуральный базовый класс / 2016-02-05 23:40

Владимир, здорово что сделал! :)


24. Оля
Оля
ответить
→  Владимир Борисенко  # Теория ООП / Фигуральный базовый класс / 2016-02-05 23:39

Владимир, здорово что сделал! :)


1. Евгений Витольдович
Евгений Витольдович
ответить
→  Владимир Борисенко  # Теория ООП / Фигуральный базовый класс / 2016-02-05 22:51

Нормально сделал, чё.


6696. Владимир Борисенко
Владимир Борисенко
ответить
# Теория ООП / Фигуральный базовый класс / 2016-02-05 20:18

Я так и не додумался как, но можно попробовать в одну строчку сделать. Что-то типа такого, но VS не пропускает
То есть берем shape приводим к типу объекта, какой в нем лежит и вызываем Draw под этот объект.
Draw((shape.GetType())shape);


  • Отчёт оценивали:
    8886Михаил Ермишин+1   5760Мариша +1   6925Артём+1   7276Ильшат+1   7226Наталья+1   7645Александр Львович+1   2639Морозов Юрий Александрович+1   4699Сергей Витальевич+1   4423Антон+1   6298Anton+1   8946inward+1   459Сергей Сергеевич+1   1Евгений Витольдович+1   4889Валера Луцевич+1   24Оля+1   1295Дмитрий Че+1   8967Дмитрий Артюхин+1   6987MichGar+1   689Igorenzia+1   3922Александр0   6195sergey+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: хорошая идея создать пустой базовый класс для объединения в один массив объектов, у которых нет ничего общего. функцию Draw реализовал через if - if (shape is line) Draw(shape as line) ...
Трудности: не было
все ок
Научился: Углубленно и гибко применять ООП на практике. Например через цикл for.
Трудности: Ничего
Хороший урок.