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

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Теория ООП / ПОЛУФИНАЛЬНЫЙ УРОК.

  • На этом первая часть видеокурса "Теория ООП" закончилась.
    Пожалуйста, напиши отзыв об этом курсе,
    что тебе понравилось, что узнал нового,
    что можно было бы сделать лучше,
    оправдал ли курс твои ожидания.

    Приложи своё фото и напиши своё имя-фамилию.

    (видео в этом уроке нет)
  • Дата отправки отчёта: 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);
            }

    Курс отличный, спасибо! Продолжаю изучать.
  • Оценка видео-уроку:
Отчёт от 12841 за Теория ООП / ПОЛУФИНАЛЬНЫЙ УРОК.




Оцени работу

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

10558. --
Иван Воронин
Иван Воронин
ответить
→  Артем Посунько  # Теория ООП / ПОЛУФИНАЛЬНЫЙ УРОК. / 2017-05-06 14:51

Молодец, хорошо нагуглил, но можно было и по старинке:
public Line (Pixel start, Pixel end, Color color = default(Color))
{
    this.start = start;
    this.end = end;
    pen = new Pen(color);
}


7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  Артем Посунько  # Теория ООП / ПОЛУФИНАЛЬНЫЙ УРОК. / 2017-05-06 17:51

Прикольный код.


12841. --
Артем Посунько
Артем Посунько
ответить
→  Иван Воронин  # Теория ООП / ПОЛУФИНАЛЬНЫЙ УРОК. / 2017-05-08 08:39

Не знал про default.  Но в таком случае Color будет равен null, и если мы не выставляем цвет, то программа не скомпилируется. Надо все равно добавить условие что если null, то цвет будет черный.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Артем Посунько  # Теория ООП / ПОЛУФИНАЛЬНЫЙ УРОК. / 2017-05-08 12:03

У меня проблем с компиляцией в этом случае никогда не было. Потому что там не null возвращается, а Color.Empty, ошибки не будет, будет цвет сброшен и взят по-умолчанию для того объекта к которому он применён.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Артем Посунько  # Теория ООП / ПОЛУФИНАЛЬНЫЙ УРОК. / 2017-05-08 12:06

Кстати, можно ещё так:
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#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Узнал про основы ООП
Очень интересный видеокурс. Тем более видеоуроки такой небольшой продолжительности очень легко смотрятся и выполняются, я считаю это очень хорошим плюсом. Мне понравился видеоурок, хотя он не полностью еще завершен, но начало заложено очень хорошее. Потехин Никита.


Научился: Былков Руслан Научился рисовать на C#, разобрался в основах ООП. Видео курс отличный, очень подробный.