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

Формула программиста
основатель — Волосатов Евгений Витольдович
Вебинар «Что тебе поможет стать крутым программистом?» начнётся через 8 час. 48 мин.

Теория ООП / Рисователь снеговиков

  • На этом уроке мы реализуем метод Draw (Shape shape) через серию условных операторов.
    А также создадим функцию для рисования целевого спрайта (снеговика) - Draw (Shape [] shapes).
    Результат работы программы не изменяется, а вот содержимое кода всё более и более облагораживается.
  • Дата отправки отчёта: 21 ноября 2015 г.
  • Задание выполнено: за 3 час. 00 мин.
  • Чему научился: Узнал что класс Object  является исходным базовым классом для всех классов. Увидел как пользоваться приведением типов. Познакомился с методом GetType() базового класса Object. Узнал как работает оператор typeof.
    Переменная Shape.position которую мы опишем в классе Shape и дадим ей тип Pixel будет задавать координаты базовой точки.
  • Что было сложным: на самом деле уже все потихоньку становится сложным
  • Комментарии: На мой взгляд очень мало уделено времени такой  теме  как - "Приведение типов".  Глобальная тема.
  • Оценка видео-уроку:
Отчёт от 3146 за Теория ООП / Рисователь снеговиков




Оцени работу

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

7276. Ильшат
Ильшат
ответить
→  Permitin Alexey  # Теория ООП / Рисователь снеговиков / 2015-11-22 14:47

Я считаю, что наоборот, приведение типов это ни есть хорошо. Вы таким образом ломаете код, ломаете заранее заложенные принципы. Простой пример, Вы указали в сигнатуре функции аргумент с типом short, а передаете ему тип double. Может случиться так, что фактический аргумент содержит значение большее чем позволяет битовая сетка формального аргумента типа short. То же самое касается понижающего приведения от базового класса к производному, оно нужно, иногда (когда объект иерархии передается в код сторонней библиотеки и по возвращении нужно вернуть начальный тип), но в остальных случаях это зачастую намекает на ошибку в проектировании.


  • Отчёт оценивали:
    4889Валера Луцевич+1   1Евгений Волосатов+1   459Сергей Сергеевич+1   4004Елена+1   7440homerSimpson+1   7299Ирина+1   5407Дмитрий 199+1   5566Сергей+1   1232Фомичева Наталья+1   3747Сергей+1   7645Александр Львович+1   2912Игорь+1   6391Владимир+1   429Максим Базуев+1   4182Farid+1   5265Дмитрий Мерцалов+1   6458Илья+1   6452Кирилл Шмойлов+1   7276Ильшат+1   8014Denis0   5760Мариша +1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: вспомнил все эти typeof, is, as и их отличия. Любопытно получилось использовать is. Получались интересные эффекты в разном сочетании.
Что значит "использовать switch нельзя"? Кто мешает привести тип к строке и сделать так: switch (shape.GetType().ToString()) { case "Geometry.Line": Draw((Line)shape); break; case "Geometry.Box": Draw((Box)shape); break; case "Geometry.Circle": Draw((Circle)shape); break; case "Geometry.ColorLine": Draw((ColorLine)shape); break; case "Geometry.ColorBox": Draw((ColorBox)shape); break; case "Geometry.ColorCircle": Draw((ColorCircle)shape); break; } Всё работает.
Научился: Рисовать массив фигур
Shape.position нужна, чтобы задать верхнюю левую точку спрайта и двигать его