На этом вопросе валятся все новички в C#



Начинающие программисты очень хотят найти работу, но часто не качественный учебный материал может обосрать им малину. Недостатачная практика некоторых специфичных вопросов может стоить вам выгодной вакансии.

Вопрос даже не теоретический. Непонимание этой темы в начале моей карьеры приносило много неприятных багов на исправление которых уходили часы.

БОРИС (Бесплатное Обучение Разработка Игр) – http://ijunior.ru/boris/promo01?utm_source=youtube&utm_medium=video&utm_campaign=description&utm_content=valueandreferencetype

C# Light. С нуля до первой зарплаты – http://ijunior.ru/csharp-light?utm_source=youtube&utm_medium=video&utm_campaign=description&utm_content=valueandreferencetype

МОЯ КНИГА – http://csharpbook.sakutin.ru
ГРУППА КАНАЛА – https://vk.com/holymonkey
ШКОЛА ПРОГРАММИРОВАНИЯ ЯЮНИОР – https://vk.com/holymonkey_sandbox
Я В VK – https://vk.com/rsakutin
INSTA – http://instagram.com/sakutinhuytin
ЧАТ В ТЕЛЕГЕ – https://t.me/csharp_faggots_fan_club

34 Comments

  1. Короче есть value type, есть более комплексные reference type.
    При приравнивании первого типа ты клонируешь сущность/значение внутри переменной под другую переменную, при втором случае ты копируешь тупо ссылку на первую переменную

  2. ref-type и value-type хранятся там и так, где я захочу, и как я захочу. Я могу спокойно через unsafe и стэкаллкоацию запихать ссылочный тип на стэк, и value-тип запихать на кучу, обернув его в класс.
    Насчёт того, что будет быстрее или не быстрее: заставлять GC помечать, убирать и компактить свой мусор всегда дольше, а стэк очищается МГНОВЕННО(т.е. фрейм метода при выходе из него сносится сразу же) это раз. Два – а размер значения и размер ссылки учитывается? в x64 архитектуре ссылка весит 8 байт. Это может быть больше, чем несколько значений в байтах и шортах, выровненных в структуре.
    Про копирование ссылки: стоило объяснить тогда, как с этим работать. И что скопированная ссылка будет действительна только если объект изменять. Если по ней попытаться создать новый – CLR присвоит новую ссылку, т.е. перезапишет старую на фрейме для нового объекта.

  3. Уважаемый, value types и reference types это одно, а ValueObjects и Entity это совсем другое))) все скинул в кучу. Конечно в этих понятиях есть что-то схожее, но это далеко не одно и то же. Сразу видно что вы далеки от DDD.

  4. Хм, те времена когда еще на лице не было ухмылки типа "я знаю все, а вокруг меня одни придурки".

  5. И к слову в NET все Объекты; Строки; Классы; Интерфейсы; Делегаты ссылочные хранящие ссылку на данные в памяти. Массивы типа var[] также есть класс – Array. И есть типы значения хранящие сами значения данных. Всё конец лекции :).

  6. Говорю как преподаватель, очень тяжело тебя понять. Слушатель из твоего опуса поймет только одно – нужно загуглить все то, что услышал! (И смысл твоей лекции? Лекция ради лекции?)

  7. те кто перед c# изучал чистый Си, и понял как правильно работать с памятью, тем этот вопрос понять будет намного проще. Автор достаточно просто все объяснил. Респект.

  8. Не смотрел видео до конца, но по лицу вижу – использует анемичную модель. (я использую только богатую – ипотека сама себя не оплатит)

  9. Так сложно объяснить такую простую идею это надо постараться.

  10. Такие вещи нужно объяснять, монтируя видос с графикой, как у Виндертона, например, подготовившись заранее — имея заготовленный текст. Тогда будет всё чётко, понятно и по делу.

  11. 3:56 , что написано на последней строке? Её начало – W, которая обведена кругом. Не понял сходу, промотав на это время. Shuffle как будто вызывает метод, в который передаётся ещё один метод, если не вчитываясь кинуть взгляд.

  12. кто на этом валится ? это база , даже ниже базы, бессмысленное видео .

  13. Ссылочный или Значение при малых данных никакой оптимизация не дает, Но если при конвертация видео или обработка изображение, где действует емкие данные. Думаю полезным считать этот урок.

  14. Я чёт не пойму почему все пишут что не понимают (попробуйте посмотреть заново по медленнее)? или почему приходят люди которые поправляют его если вы всё знаете видео не для вас. Тут написано для новичков. Я лично всё понял, не знал о таком, Автору спасибо!

  15. мне 16 и я учусь программированию. Без проблем уже могу отвечать на многие вопросы собеседования на позицию c# junior)

  16. не знаю в чём порблема, эта вещь описана во всех учебниках JS, значит фиговые у вас на шарпе учебники

  17. ох уж эти соискатели, что даже Рихтера не удосужились почитать. Тема важная (без нее собес не пройти), интересная и куда более обширная. Будет интересно услышать про упаковку, как разместить массив в стеке ( с помощью fixed или stackalloc ), как происходит приведение к интерфейсному типу структуры, да и вообще, как устроены типы в шарпе

  18. А чем различались эти способы? Только тем что массив это всегда ссылочный тип?
    И еще. А вообще зачем это? Оптимизация? А что лучше становится?

  19. так ты структуру в функцию по ссылке передавай, а не по значению, lol

  20. Так а структура ссылочной не бывает что ли? Так же можно кинуть ссылку на структуру и все будет работать.

  21. Сомнительное объяснение, каша с терминами. Не сказано самое важно различие. И ссылочный тип массив, о чудо, МОЖНО разместить на стеке.

Leave a Reply

© 2023 53GB