Очень хочется все элементы снеговика поместить в один массив. Сейчас это сделать нельзя - придётся делать три массива - для кругов, для линий, для боксиков... Решение гениальное - создаём базовый класс фигуры - Shape, создаём массив фигур, и все фигуры помещаем в этот массив! После размещения фигур в массив можно видеть, что каждая фигура в нём хранится не как фигура, а под своим типом. А все под одной крышей они могут находится потому что все они - фигуры, так как унаследованы от Shape.
Дата отправки отчёта:
6 октября 2015 г.
Задание выполнено: за
30 мин.
Чему научился:
1) Создавать массив объектов и использовать цикл для итерации в указанном диапазоне. 2) Свойство или поле Length у массива. 3) Динамическая идентификация типа в C#.
Что было сложным:
Реализовать функцию Draw(Shape).
Комментарии:
Общая идея такова, что среда выполнения C# как бы должна знать динамический тип объекта. Как раз на видео было показано, что хоть у массива статический тип это Shape, но динамический тип может быть другим(Circle, Box и т.д.).
Для реализации Draw(Shape) обратился к гуглу, почитал в википедии про динамическую идентификацию типа в C#, обнаружил, что для этого есть несколько способов реализации (GetType, typeof, is, as), подробнее почитал в msdn, поигрался с is, GetType(), выбрал GetType.
Получился эдакий брутальный способ вызова соответствующей перегруженной функции Draw).
Да, при таком способе (и еще когда сам попутно изучаешь, как в этом уроке) теория как раз к месту, ни больше ни меньше, чем нужно для решения задачи. Кроме того, нравится то, что происходит постепенное улучшение структуры программы: показывается первоначальное решение, оно расширяется, появляется некая проблемка, неудобство, человек это осознает и ищет пути улучшения, а на последующих уроках даются ответы. То есть, происходит развитие, понимание, а не просто принятие факта, что ООП это круто и все так пишут)
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.