На этом первая часть видеокурса "Теория ООП" закончилась. Пожалуйста, напиши отзыв об этом курсе, что тебе понравилось, что узнал нового, что можно было бы сделать лучше, оправдал ли курс твои ожидания.
Приложи своё фото и напиши своё имя-фамилию.
(видео в этом уроке нет)
Дата отправки отчёта:
5 мая 2017 г.
Задание выполнено: за
30 мин.
Чему научился:
На практике научился применять все то, что читал в книге, касаемо ООП. Посмотрел на то, как работает инкапсуляция, полиморфизм, наследование.
Что было сложным:
Так и не понял, зачем каждый раз для новой фигуры присваивать graphics. Ну и вообще плохо разобрался с graphics, bitmap, picture. Но это вопросы не этого курса, так что все в порядке.
Комментарии:
Местами становилось скучновато. Очень ждал, когда закончится работа со снеговиками, чтобы по своему переделать программу. Очень мне не нравилось наличие двух классов для одного и того же, цветных и черных фигур. Ведь по сути в первом случае задается цвет, во втором он просто "стандартный". Избавился от дублирующих классов при помощи необязательных аргументов. Хотя не так просто оказалось это, т.к. Color вычисляется в процессе выполнения программы, а не на этапе компиляции. А необязательные аргументы должны быть известны на этапе компиляции. Выход из ситуации нагуглил. В итоге к главному конструктору каждой фигуры надо добавить Color? color = null. А в тело конструктора pen = new Pen (color ?? Color.Black). Тогда все работает. Цепочку конструкторов изменить соответствующим образом. Пример конструктора для Line: public Line (Pixel start, Pixel end, Color? color = null) { this.start = start; this.end = end; pen = new Pen(color ?? Color.Black); }
Молодец, хорошо нагуглил, но можно было и по старинке: public Line (Pixel start, Pixel end, Color color = default(Color)) { this.start = start; this.end = end; pen = new Pen(color); }
Не знал про default. Но в таком случае Color будет равен null, и если мы не выставляем цвет, то программа не скомпилируется. Надо все равно добавить условие что если null, то цвет будет черный.
У меня проблем с компиляцией в этом случае никогда не было. Потому что там не null возвращается, а Color.Empty, ошибки не будет, будет цвет сброшен и взят по-умолчанию для того объекта к которому он применён.
Кстати, можно ещё так: public Line (Pixel start, Pixel end, Color? color = null) { this.start = start; this.end = end; pen = new Pen(color.GetValueOrDefault(Color.Black)); }
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: Узнал про основы ООП Очень интересный видеокурс. Тем более видеоуроки такой небольшой продолжительности очень легко смотрятся и выполняются, я считаю это очень хорошим плюсом. Мне понравился видеоурок, хотя он не полностью еще завершен, но начало заложено очень хорошее.
Потехин Никита.