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

Формула программиста
основатель — Волосатов Евгений Витольдович
Вступай в Телеграм чат проекта | Обход блокировки
Игровой комплекс Сокобан - Введи код скидки

Теория ООП / Структура vs Класс

  • На этом дополнительном уроке наглядно демонстрируются главные отличия между struct и class в языке C#.
  • Дата отправки отчёта: 23 февраля 2016 г.
  • Задание выполнено: за 2 час. 00 мин.
  • Чему научился: Узнал, чем отличается структура от класса и что хранится в памяти и в куче, как открыть и использовать окно Locals. Также узнал, что DateTime – это структура, наследующая интерфейсы.

  • Что было сложным: Запоминается это плохо. Читал про это много раз, затем все снова забывается, потому что это знание почти никогда не используется на практике.
    Также было трудно понять, почему в структуре не сохраняются изменения.

  • Комментарии: Большое спасибо! Замечаний нет.
  • Оценка видео-уроку:
Отчёт от 7645 за Теория ООП / Структура vs Класс




Оцени работу

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


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




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

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

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

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


Научился: в общем я понял, что структура сразу находится в памяти и в этом ее плюс, она заметно легковеснее за счет своих ограничений, чем стандартный класс, также ясно, что структура передается "по значению" а не по ссылке.
Трудности: Сразу не было понятно: про виртуальные члены стек и куча понятны оч приблизительно (разные варианты оперативной памяти)
Хотелось бы (видимо будет дальше) чуть больше разъяснений про области практического применения структур


Научился: Так как пишу на C++, то в моем случае нет указанной разницы между классом и структурой. В C/C++ все передаются по значению. Для того, чтобы функция могла изменить значение аргумента, необходимо передать указатель или ссылку на аргумент. Но урок требует реализовать поведение, поэтому написал функцию move_pixel, которая принимает аргумент по значению и не изменяет его. И написал вторую функцию move_pixel_ref, которая принимает аргумент по неконстантной lvalue-ссылке и изменяет аргумент.
Трудности: Проблем не было, хорошо показана и нарисована разница между структурами и классами в C#.