Очень хочется все элементы снеговика поместить в один массив. Сейчас это сделать нельзя - придётся делать три массива - для кругов, для линий, для боксиков... Решение гениальное - создаём базовый класс фигуры - Shape, создаём массив фигур, и все фигуры помещаем в этот массив! После размещения фигур в массив можно видеть, что каждая фигура в нём хранится не как фигура, а под своим типом. А все под одной крышей они могут находится потому что все они - фигуры, так как унаследованы от Shape.
Дата отправки отчёта:
16 апреля 2018 г.
Задание выполнено: за
1 час. 5 мин.
Чему научился:
Объединили в массив все фигуры. Урок интересен тем что можно и даже нужно самостоятельно поработать с выводом последней функции Draw... Ход мыслей у меня был такой: 1) В параметр shape передается текущее значение массива. Общий тип остается Snape , а вот в скобках я увидел Circle 2) Начал копать как можно получить тип из текущего значения. Нашел функцию GetType() 3) Взял из нее имя и зная что у меня есть круг, прямоугольник , линия и т д сделал switch 4) Из прошлого вспомнил, что есть приведение типов. Освежил в памяти как это делается Получилось в итоге вот так (в общем заработало): private void Draw(Shape shape) { Type type = shape.GetType(); switch (type.Name) { case "Circle": Draw((Circle)shape); break; case "Box": Draw((Box)shape); break; case "Line": Draw((Line)shape); break; case "ColorCircle": Draw((ColorCircle)shape); break; case "ColorBox": Draw((ColorBox)shape); break; case "ColorLine": Draw((ColorLine)shape); break; default: break; } } Интересно будет дальше посмотреть какое будет решение данной функции в следующем уроке.