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

Формула программиста
основатель — Волосатов Евгений Витольдович
1-2-3 мая - Создай online игру!

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

  • На этом дополнительном уроке наглядно демонстрируются главные отличия между struct и class в языке C#.
  • Дата отправки отчёта: 14 июля 2016 г.
  • Задание выполнено: за 40 мин.
  • Чему научился: Понял что в структура передает значения а класс ссылки, поэтому если проводить какие-то операции с данными в случае класса при следующем обращении они будут уже с учётом изменение, в случае структуры будут ровно такие как были при инициализации. Но для структуры есть способы добиться иного поведения.
  • Что было сложным: в общем то все доходчиво объяснили, надеюсь правильно понял
  • Комментарии: все прекрасно
  • Оценка видео-уроку:
Отчёт от 10670 за Теория ООП / Структура vs Класс




Оцени работу

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


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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: отличие структуры от класса: 1 Когда мы работаем со структурой то мы работаем с ее копией а когда работаем с классом то с оригиналом класса, для того чтобы работать с оригиналом структурных полей используем модификатор ref или out 2 Структуры нельзя наследовать 3 В структурах нельзя вызвать деструктор
Трудности: Минуты 2 искал где находиться вкладка Locals
1 Переменные класса хранятся в стеке а их ссылки на куче ? 2 Структурными хранятся в стеке.(кажется еще структуры могут храниться на куче) ? 3 Так и не понял зачем нужны структуры если есть класс ))) Из за хранения в разных памятках, если много мелких объектов то создаем структуру если большой объект то создаем класс?
Научился: 1)Создавать в консоли программы , содержащие классы и структуры. 2)Инициализировать переменные и элементы массивов в структуре. 3) Пользоваться BreakPoint, но не знаю как осуществить пошаговый просмотр в цикле. 4) Убедилась, что данные, инициализированные в конструкторе не передаются в Main (у меня) 5)Убедилась, что структура не сохраняет измененное значение, а класс –сохраняет
Трудности: 1) Поскольку задание выполняла через неделю после разбора урока - пыталась сделать задание в WF (вдохновлялась Motivator и пыталась создать движущийся объект, но так и не смогла написать код структуры в форме). Перешла на консоль, сменила задачу - вычисление гипотенуз трех треугольников, с координатами вершин в трех массивах. 2) Испытывала проблемы с созданием структуры, В частности, значения, инициализированные при задании структуры в конструкторе, не передaвались. Если массив инициализировать в Main - значения все равно не передаются. Задала значения каждого элемента массива в Main, задача прошла , но после запуска значения массива в структуре изменились! 3) Изменила условие задаче – вычисление координат параболы – Main оказалось подчеркнутым и сообщение – 2 точки входа. Компиляции не помогла. Потом эта прблема самоустанилась , программа прошла, значения в структуре не изменились, а в классе - изменились. 3) Но когда я начала писать заново – сообщение две точки входа повторилось. 4) не могу сделать пошаговую отладку в цикле Сначала писала программу, где последовательные данные хранятся в массие ( вычисление гипотенуз в трех треугольниках-все стороны -целые.) Но не 1) смогла воспользоваться Значениями массива, заданные при его инициализации. После того, как обошла это в Main и программа сработала - оказалось, что 2) стуктура сохраняет измененное значение! После этого сделала программу расчета точек параболы. При этом столкнулась 1) Main подчеркнуто и сообщение есть: 2 точки входа- компиляция не помогала. Каким то образом это исчезло, но когда я начинала писать заново с скопированного кода в блокнот сообщение о 2 х точках входа появлялось снова, и я не могу написать программу заново.
No Comments