МОДИФИКАТОР IN C# и бенчмарк | РАЗНИЦА между IN REF и OUT | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 45

  Рет қаралды 72,731

#SimpleCode

#SimpleCode

4 жыл бұрын

В этом уроке мы изучим ключевое слово in в языке программирования C#, выясним для чего оно нужно, как используется, напишем бенчмарк для теста производительность при использовании модификатора in, а так же выясним какая разница между ключевым словом in ref и out в языке программирования C#.
➡️ Мой курс C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ на Udemy
👉 www.udemy.com/course/simpleco...
✅ ИСХОДНЫЙ КОД УРОКА bit.ly/3fPKvpA
✅ КЛЮЧЕВОЕ СЛОВО REF C# | C# ref что это и для чего нужно | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 43 bit.ly/2MCHQ6o
✅ КЛЮЧЕВОЕ СЛОВО OUT C# | РАЗНИЦА между REF и OUT C# | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 44 bit.ly/316MAJC
✅ КАК ИЗМЕРИТЬ ВРЕМЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ, КОДА, МЕТОДА, ФУНКЦИИ, ЗАПРОСА | C# STOPWATCH | C# ПЛЮШКИ bit.ly/37PRYlQ
🔹 Telegram канал t.me/SergeySimpleCode
🔹 Наша группа ВК smplcode
✅Доступ к исходному коду и спонсорство / simplecode
✅ donatepay.ru/don/SimpleCode
✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
✅Подписывайтесь на канал / @simplecodeit
#сишарп #simplecode #урокипрограммирования

Пікірлер: 163
@SimpleCodeIT
@SimpleCodeIT 4 жыл бұрын
Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =) ✅Доступ к исходному коду и спонсорство www.patreon.com/SimpleCode ✅ donatepay.ru/don/SimpleCode ✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
@topdeck202
@topdeck202 4 жыл бұрын
Сейчас закрываю сессию, нет времени смотреть. Но всегда захожу и ставлю лайк, когда вижу новое видео. Спасибо за то, что вы делаете!!
@MrHazur
@MrHazur 4 жыл бұрын
У меня нет высшего образование (только 11 классов) Раньше пробовал, что-то программировать в кавычках. Но серьезно изучать С++ начал 3,5 года назад. Твои видео уроки сдвинули меня с мертвой точки. Они научили меня правильно задавать вопросы и находить на них ответы. Пол года назад прошел собеседование - теперь я джуниор. Спасибо тебе огромное.
@Malosolnyj_ogurec
@Malosolnyj_ogurec 3 жыл бұрын
Круто, мотивирует двигаться дальше!!)))
@klabukov_dmitry
@klabukov_dmitry 3 жыл бұрын
Думаю будет правильно выразить материальную благодарность автору, который своим трудом так помог вам)
@Sokkez
@Sokkez 3 жыл бұрын
А щас кто?
@ilya9261
@ilya9261 2 жыл бұрын
как то ты долго изучал
@MrHazur
@MrHazur 2 жыл бұрын
@@klabukov_dmitry Да я об этом думал, и думаю. Хочу это сделать, когда мой первый, серьезный проект выйдет из dev.
@BuFFerS103
@BuFFerS103 4 жыл бұрын
*Я человек простой, вижу видео Сергея - ставлю лайк!*
@user-bn6mp6yo1k
@user-bn6mp6yo1k 4 жыл бұрын
Сергей, я сейчас всех рассмешу! Всегда восхищалась IT-шниками и завидовала их увлекательной работе!😄😄😄😄😄. Не было времени начать учиться, да и страшно, что всё равно ничего не пойму! Всё началось с вашего плейлиста по HTML. Решила первый послушать✌✌✌✌✌. Пока ещё 2 недели изучаю и пока всё понятно. Правда сижу сутками🐸🐸🐸🐸🐸🐸🐸. Благо, что на пенсии!!! Какое это прекрасное время ПЕНСИЯ👍👍👍👍👍👍. Правда, времени, что до, что после, как уволилась с должности - НЕ ХВАТАЕТ🙊🙊🙊🙊🙊🙊. А у Вас прирожденный Дар преподавать✌✌✌✌✌✌.СПАСИБО❤❤❤❤❤❤
@valerii7104
@valerii7104 6 ай бұрын
@@BasicD2002 Уже сениор хах как видишь
@stasiqueihnatsenka8226
@stasiqueihnatsenka8226 4 жыл бұрын
Классно объяснил всего за 15 минут на простых и понятных примерах
@user-lx5vv3uu8u
@user-lx5vv3uu8u 4 жыл бұрын
Сергей, салюют! Спасибо тебе огромное за информативные лекции!!!
@user-xy5qu1zp4l
@user-xy5qu1zp4l 4 жыл бұрын
Спасибо тебе большое! Думаю даже на платных курсах мне бы так не объяснили. Серьезно, из уроков на Ютубе - это самые топ!
@nazarshevchenko856
@nazarshevchenko856 3 жыл бұрын
Господи насколько же это качественное пояснение. Очередное спасибо)!
@mikhailmaliakin8080
@mikhailmaliakin8080 3 жыл бұрын
Объяснение, как всегда на высоте)Спасибо
@vyacheslavlouten8681
@vyacheslavlouten8681 4 жыл бұрын
Дождался нового урока) Благодарю вас Сергей за данный курс, вы мне очень помогли!
@user-ll2pv3cx7q
@user-ll2pv3cx7q 4 жыл бұрын
Каждый день ты спасаешь миллионы студентов на сессии! =))
@VladisS.Vostok2000
@VladisS.Vostok2000 3 жыл бұрын
Очень годно. До этого думал, что это только лишь чтобы обезопасить входящие данные от изменений.
@_chill_relax_calm4647
@_chill_relax_calm4647 3 жыл бұрын
Поддерживающий комментарий для развития канала
@user-kk6ob5ud3n
@user-kk6ob5ud3n 3 жыл бұрын
Крутейше объясняешь. Ты топ! Спасибо тебе)
@denr721
@denr721 2 жыл бұрын
В очередной раз, спасибо за урок. От себя хочу добавить что IN не всегда может не менять значение. Если в качестве параметра будет выступать значимый тип (структура, энам), то данные в параметре изменить никак не получиться => и данные начальной переменной изменить в методе не удастся. Но если, в качестве параметра будет выступать ссылочный тип (классы), то сами данные, которые в куче изменить можно, а вот ссылку модифицировать никак нельзя. Т.е то что находиться в Стэке он модифицировать отказывается
@alvoltta
@alvoltta 4 жыл бұрын
Только вчера прочитал эту тему, спасибо!
@GoodBoy-hs7pv
@GoodBoy-hs7pv 4 жыл бұрын
Сергей, спасибо огромное! You are breathtaking!
@alinanur5628
@alinanur5628 3 жыл бұрын
Гениально и просто! Вы всегда можете доходчиво и интересно объяснить то, что казалось до этого сложным и непонятным)))Спасибо огромное за ваш труд, не останавливайтесь !!!
@I-PixALbI4-I
@I-PixALbI4-I 4 жыл бұрын
Спасибо за уроки. Почаще бы выходили!!!
@user-kz4xm7zk5c
@user-kz4xm7zk5c 4 жыл бұрын
Благодарю, Сергей!
@matem101
@matem101 3 жыл бұрын
Отличный урок!
@liko8019
@liko8019 3 жыл бұрын
лучший канал о программировании!!!
@currydenz5542
@currydenz5542 3 жыл бұрын
В универе и то меньше информации про такие вещи, а вам спасибо за это
@user-sq4ff4zp9b
@user-sq4ff4zp9b 2 жыл бұрын
Спасибо, Сергей! Твой труд заслуживает большего!
@b-films9344
@b-films9344 3 жыл бұрын
В последние время на ТыТрубе смотрю почти только ваш канал)
@user-zq5hl8hv8g
@user-zq5hl8hv8g 3 жыл бұрын
Благодарю!!!
@Sashad2003
@Sashad2003 3 жыл бұрын
Спасибо. Все очень доступно и подробно объясняешь. 👍
@alexmam2886
@alexmam2886 3 жыл бұрын
Сергей, доброго времени суток. Занимаюсь по Вашим урокам, очень доходчиво объясняете. Интересно знать, Вы работаете с# программистом или работали таковым?
@artyomvoytenko1237
@artyomvoytenko1237 4 жыл бұрын
Спасибо за наглядный тест) Теперь все понятно
@dimasavukov6230
@dimasavukov6230 4 жыл бұрын
Огромное спасибо!
@t3m8ch79
@t3m8ch79 4 жыл бұрын
Спасибо за ролик!
@Mr.Epsilion
@Mr.Epsilion 2 жыл бұрын
Thanks for teaching us, it's really simple and help to understood.
@KlevaGameS
@KlevaGameS 9 ай бұрын
Благодарю за урок.
@user-zh8gn8iw1c
@user-zh8gn8iw1c 3 жыл бұрын
аааа как же я уже хочу ООП
@ifelru
@ifelru 2 жыл бұрын
Спасибо за урок! Было полезно и интересно.
@katsugeki371
@katsugeki371 4 жыл бұрын
Большое спасибо!
@user-wt1hc4hm3t
@user-wt1hc4hm3t 3 жыл бұрын
Всегда удивляюсь наличием "Не нравится" от 3-6 шт, кто эти люди??? Спасибо Автору за ценный контент и развернутое пояснение.
@bignumber9483
@bignumber9483 4 жыл бұрын
Спасибо за урок
@leskhanmuratuly5374
@leskhanmuratuly5374 3 жыл бұрын
Спасибо)
@keyable
@keyable Жыл бұрын
Great lessons! Wish there will be continuation!
@Shipa_kLg
@Shipa_kLg 4 жыл бұрын
Большое спасибо за урок, а какие вы книги посоветуете для изучения C#?
@egorkalmykov4003
@egorkalmykov4003 3 жыл бұрын
Спасибо !!!
@elfinroom1178
@elfinroom1178 3 жыл бұрын
моему компуктеру понадобилось 30 и 7 сек на подсчет . тяжеловато старичку приходится)
@kostya_engineer
@kostya_engineer 2 жыл бұрын
У меня вообще 43 и 9
@Antonov_Ivan.
@Antonov_Ivan. 2 ай бұрын
Спасибо за урок!
@user-sp6nv4ds5v
@user-sp6nv4ds5v 3 жыл бұрын
Спасибо
@Anton-Os
@Anton-Os 2 жыл бұрын
Благодарю!
@OleksandrOryshchenko
@OleksandrOryshchenko 3 жыл бұрын
Прогнал бенчмарк на своём компе и разница составила ~1000мс между методами. Значния были 8,5к и 7,5к соответственно. Думаю тут ещё не маловажную роль играет скорость ОЗУ разница между DDR3 и DDR4 существенная.
@firstvf
@firstvf 2 жыл бұрын
Самый наглядный пример оптимизации) Спасибо :b
@motofun-qv7zc
@motofun-qv7zc 2 жыл бұрын
Отлично!
@user-mc7kc2bd8b
@user-mc7kc2bd8b 3 жыл бұрын
Спасибо!
@user-mo9vh3ys8j
@user-mo9vh3ys8j 2 жыл бұрын
Серега Ты лучший!!!!
@JohnDoe-uu5jy
@JohnDoe-uu5jy 3 жыл бұрын
А не происходит ли неявной операции boxing-а при передаче параметра структурного типа с ключевыми словами ref,out,in ?
@artlinestudio6735
@artlinestudio6735 2 жыл бұрын
Очень полезный, легкий и интересный урок. Спасибо Сергей. Интересно в плюсах константная ссылка может дать такой же еффект? )
@user-eq1bl3xt5c
@user-eq1bl3xt5c 3 жыл бұрын
просто поставлю 100 тый комментарий
@gamemoments8183
@gamemoments8183 4 жыл бұрын
автор спасибо ! вот скажите сколько будет уроки и это примерно сколько времени займет например год или 2 года
@DARKNETOFFICIAL
@DARKNETOFFICIAL 3 жыл бұрын
То чувство когда даже с In твой ведро ПК выполнял код 30 секунд
@oldosgame
@oldosgame 3 жыл бұрын
Не понял, почему, когда работаем с Foo, данные будут копироваться?
@user-db9jc2yb7c
@user-db9jc2yb7c 4 жыл бұрын
Круто
@user-od8mn6ns2z
@user-od8mn6ns2z 2 жыл бұрын
Спасибо за урок! интересно , досмотрю ли я этот курс до конца =/
@AlSlTlElL
@AlSlTlElL 4 жыл бұрын
Сергей приветствую, я правильно понимаю что хорошей практикой считается использование in во всех ситуациях когда нету необходимости в методе изменять принимаемое значение? Или только в тех ситуация когда действительно нужно оптимизировать работу метода?
@dzmitry.herasimenka
@dzmitry.herasimenka 4 жыл бұрын
только когда нужна оптимизация, любые лишние нагорождения мешают читабельности на больших проектах (имхо)
@AlSlTlElL
@AlSlTlElL 4 жыл бұрын
@@dzmitry.herasimenka ок, спасибо
@klayd4009
@klayd4009 4 жыл бұрын
Сергей здравствуйте! А вы не хотите сделать курс по Java? Говорят она похожа на C++/C#
@aescasse
@aescasse Жыл бұрын
капец очень понятные и логичные объяснения
@moranyt8299
@moranyt8299 Жыл бұрын
Спасибо за урок, теперь знаю больше. Думаю такими темпами, к концу года все таки стану мидлом, а то уже засиделся на позиции джуна =)
@artemky3bmu45
@artemky3bmu45 11 ай бұрын
Thank you
@shushard
@shushard 3 жыл бұрын
👍
@boriscontube
@boriscontube 2 жыл бұрын
Эквивалентно ли передавать в качестве аргумента, для которого при определении метода указан IN, переменную по ссылке с разными модификаторами: IN и REF?
@boriscontube
@boriscontube 2 жыл бұрын
Можно ли инициализировать IN-аргумент при определении функции (типа инициализации по умолчанию)?
@andreypan1608
@andreypan1608 3 жыл бұрын
супер
@fillion6288
@fillion6288 2 жыл бұрын
Оптимизация программы - это одно из главных
@boriscontube
@boriscontube 2 жыл бұрын
Можно ли передать в IN-аргумент неинициализированную переменную?
@kalipso5785
@kalipso5785 11 ай бұрын
Дошел до 45 урока, осталось почти столько же.
@AleksandrKozlov-xc3km
@AleksandrKozlov-xc3km 23 күн бұрын
как успехи?
@D-And-A221
@D-And-A221 2 жыл бұрын
Так и не понял как ЗАПИСАТЬ данные в in, чтобы потом их извлечь. Как впихнуть то самое х=1 чтобы потом вызвать "с большей скоростью и защитой"? int, float, struct, string- как всё это использовать?
@kostya_engineer
@kostya_engineer 2 жыл бұрын
Дмитрий через ref передается еще быстрей ( не на много, но быстрее), ну а с ref можно делать что угодно. А вот где применить in пока не знаю. Сам изучаю С# по этим урокам.
@kostya_engineer
@kostya_engineer 2 жыл бұрын
По всей видимость с параметром in во входном аргументе метода переменная передается как константа. Если попытаться присвоить ей значение, V_Studio пишет, что переменная используется только для чтения. Ну и так как мы , в данном случае с in работаем в другой области памяти, то работа выполняется быстрее.
@ilya9261
@ilya9261 2 жыл бұрын
Зачем ты пытаешься записать данные в то, что только для чтения? В этом то и суть, что нельзя изменять это значение
@chahlik698
@chahlik698 Жыл бұрын
Дякую!
@5yga457
@5yga457 3 жыл бұрын
Посоветуйте литературу по С#, а то почитать тоже хочется)
@pulsar1934
@pulsar1934 2 жыл бұрын
Библия С#
@liko8019
@liko8019 3 жыл бұрын
4:24 распутал))
@boriscontube
@boriscontube 2 жыл бұрын
Можно ли R-value (литерал) передать в IN-аргумент?
@user-lb2gm5jh2v
@user-lb2gm5jh2v 6 ай бұрын
шел 3 день моего ВРЫВА в С# с ноги. Пока все отлично.
@akamurun6563
@akamurun6563 Жыл бұрын
Получается ref создаёт прямую связь между объектами out создаёт связь между объектами и никак иначе in указывает на объект, но не позволяет изменять его?
@user-sg2dh8rt4l
@user-sg2dh8rt4l 2 жыл бұрын
Модификатор in для аргумента в методе. Нужен для оптимизации. С ним мы не сможем менять значение поля, только get.
@HoaqoSs
@HoaqoSs 3 жыл бұрын
почему в названии между IN и REF не стоит запятая?
@pulsar1934
@pulsar1934 2 жыл бұрын
компилятор их всё равно не увидит
@liko8019
@liko8019 3 жыл бұрын
13:23 все наши усилия ахаххаха
@Hayabusa17
@Hayabusa17 Жыл бұрын
это касается только значимых типов?
@TEHNOTRAHER
@TEHNOTRAHER 4 жыл бұрын
А какой размер у ссылки? По идее это должно быть число типа uint или ulong(32 или 64 бита) То есть ссылка может весить 4 или 8 байт. Я правильно понимаю?
@dzmitry.herasimenka
@dzmitry.herasimenka 4 жыл бұрын
в. net ссылка на обьект весит почти всегда 4 байта(x32), 8 байт(x64) глубже знать пока и не нужно
@boriscontube
@boriscontube 2 жыл бұрын
? При передаче в IN-аргумент переменной, без написания рядом с ней IN (т.е. при вызове функции без указания при вызове модификатора IN для аргумента, для которого при определении функции был указан модификатор IN), НЕ ПРОИЗОЙДЕТ передача по ссылке, а произойдет передача по значению (и эффект будет такой же, как если бы не было написано IN при определении функции (метода)).
@fox__gun6420
@fox__gun6420 3 жыл бұрын
именно так и выглядят танцы программиста с бубном, что бы понять куда можно поставить 2 (!) буквы.
@user-xv3to4jq8u
@user-xv3to4jq8u 2 жыл бұрын
Преподы в ВУЗах: "ООО а че так можно было что ли ааа..((("
@gamemoments8183
@gamemoments8183 4 жыл бұрын
у меня показатели : Foo 8529 Bar 0
@AleksandrKozlov-xc3km
@AleksandrKozlov-xc3km 23 күн бұрын
почему не даёт инфу не понимаю, в Core запускаю цифры похожие но инфа с четырёх процессов вместо двух, по дву ноль, но названия инфы не соответствует метода фу и бар (((
@alfany6252
@alfany6252 4 жыл бұрын
А in в аргументе оператора foreach - это другое?
@dzmitry.herasimenka
@dzmitry.herasimenka 4 жыл бұрын
другое) foreach это якобы синтаксический сахар, он разворачивается в цикл while потом
@user-od5ub1mx4k
@user-od5ub1mx4k 4 жыл бұрын
Спасибо за уроки!) Кстати, кто знает почему у меня в Visual Studio Пропали цвета, раньше метод WriteLine был желтым, как на видео, а сейчас он белого цвета, так же for был розовый, а сейчас синий, подскажите пожалуйста как исправить, немного сложно привыкать к этому))
@vitaliy1773
@vitaliy1773 4 жыл бұрын
Так не должно быть это проблема.
@ustaagvan
@ustaagvan 3 жыл бұрын
Может быть ты как то сменил тему оформления, может и такой вариант
@sabatonbaton6105
@sabatonbaton6105 3 жыл бұрын
О боже как я орнул с "Все вот наши усилия"
@krivodeling7925
@krivodeling7925 3 күн бұрын
+
@5yga457
@5yga457 3 жыл бұрын
У меня бук полетел в далекие края от этого бенча
@liko8019
@liko8019 3 жыл бұрын
3:35 запутал...
@Maks-hb6wg
@Maks-hb6wg 4 жыл бұрын
Что мне делать ? Я скачал бесплатную версию visual studio. И через месяц мне пришло сообщение что пробная версия для ознакомительных целей скоро закончиться и я потеряю доступ к данному продукту. Неужели дальше платить придется ?
@vitaliy1773
@vitaliy1773 4 жыл бұрын
Можешь просто в ютубе загуглить ключ на вижуал студио.Мне помогло
@dzmitry.herasimenka
@dzmitry.herasimenka 4 жыл бұрын
visual studio community версия бесплатная, и не нужно ключей.
@oleksandralekseiev8370
@oleksandralekseiev8370 4 жыл бұрын
все абсолютно бесплатно, просто надо будет подключить к вижле свой аккаунт. Тебе обо всем расскажут, там только почта нужна вроде как
@Roni_Gerto
@Roni_Gerto 3 жыл бұрын
Прост зарегайся
@vael6555
@vael6555 2 ай бұрын
В c# 12 добавили ref readonly, вот тут то и непонятно его отличии от in
@artefakt4349
@artefakt4349 3 жыл бұрын
Ещё не видел всего урока. Но попробую угадать... Если аут это выход и в методе мы должны из-за этого слова присвоить значение, то ин (вход), видимо подразумевает, что в метод должно придти значение. Дополню после объяснения Сергея. Что-ж... Был не прав. Кто-бы мог подумать, что это не просто блокировка изменения данных, а ещё и такой (по моему мнению после бэнчмарка) мощный ускоритель! Ха! Первый бэнч = 9700 и 8420. Теперь я могу прикинуть, что мой компьютер слабее компьтера Сергея примрно в 2 раза. 52900 и 9530 жжжуть!
@user-kb6qd8rg4g
@user-kb6qd8rg4g 4 жыл бұрын
Комментарии, комментарии, комментарии
@user-ze3hz5sk2b
@user-ze3hz5sk2b Жыл бұрын
Кто не совсем понимает зачем нужен IN, попробую привести пример. Что бы подобрать в игре какую то плюшку, например чекпоинт, нужно постоянно проверять координаты игрока и расстояние между ним и чекпоинтом. Это все происходит постоянно и быстро. Вот и оптимиция. Ибо таких чекпоинтов может быть очень много.
@-unity-
@-unity- Жыл бұрын
"нужно постоянно проверять координаты игрока и расстояние между ним и чекпоинтом" - не нужно, если используется какой-нибудь нормальный игровой фреймворк типа Unity. В нём ты один раз устанавливаешь на игрока и чекпоинты коллайдеры (это такие компоненты, которые обозначают границы объекта). И после того, как один объект попадает в границы другого, срабатывает функция, тобою же и назначенная для этого. Код получается очень чистым, без всяких проверок на координаты и расстояния.
Double Stacked Pizza @Lionfield @ChefRush
00:33
albert_cancook
Рет қаралды 121 МЛН
A teacher captured the cutest moment at the nursery #shorts
00:33
Fabiosa Stories
Рет қаралды 56 МЛН
Что нового в C# 12
22:36
Platinum DEV
Рет қаралды 4,3 М.
Всё об указателях в C++ за 20 минут
20:00
C# Delegates Делегаты
18:14
codaza
Рет қаралды 85 М.