КЛЮЧЕВОЕ СЛОВО REF C# | C# ref что это и для чего нужно | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 43

Поділитися
Вставка
  • Опубліковано 26 гру 2024

КОМЕНТАРІ • 260

  • @SimpleCodeIT
    @SimpleCodeIT  4 роки тому +37

    Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)
    ✅Доступ к исходному коду и спонсорство www.patreon.com/SimpleCode
    ✅ donatepay.ru/don/SimpleCode
    ✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4

  • @capri_xj
    @capri_xj 4 роки тому +149

    что-что, а объяснять сложное простым языком у вас получается. таких бы людей везде: и в школах, и в универах, и на ютубе)

  • @thetraveler7779
    @thetraveler7779 4 роки тому +70

    Ураа! Новый урок! Спс от души просто!!! Боялся что ты забросишь уроки.

  • @kostya_engineer
    @kostya_engineer 3 роки тому +69

    Три раза(от начала до конца) пересмотрел этот урок, только потом начал понемногу понимать.

  • @mikkimorfin5406
    @mikkimorfin5406 4 роки тому +88

    Благодарность огромная,учусь по твоим урокам,и другим советую твой канал, который лучший на ютубе по языку с#👍

    • @minoddein7205
      @minoddein7205 4 роки тому +3

      Кхм-кхм...CodeBlog 🔝

    • @minoddein7205
      @minoddein7205 4 роки тому +6

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

    • @HaruaTop-kw8so
      @HaruaTop-kw8so 4 роки тому +5

      @@minoddein7205 у codebloge тоже все понятно но code blog мастер обьяснять простве вещи на протяжение часа

  • @artyomvoytenko1237
    @artyomvoytenko1237 4 роки тому +28

    Спасибо за урок!) Ждем List)

  • @denissalerov8342
    @denissalerov8342 4 роки тому +17

    Большое спасибо за урок! Жду новых!

  • @rm5643
    @rm5643 11 місяців тому

    Огромнейшее спасибо! Такую сложную тему так легко раскидать!
    Это талант! Огромное спасибо! Мира вашему дому.

  • @kachgamer4432
    @kachgamer4432 3 роки тому +7

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

  • @ТимофейСидоренко-и8е

    Ты не представляешь, как ты мне помог разобраться во многих темах, большое тебе человеческое спасибо!

  • @elfinroom1178
    @elfinroom1178 4 роки тому +8

    Спппасибо дяде Сереже за достойный контент

  • @fader79
    @fader79 4 роки тому +18

    Отличные уроки, спасибо! Я в C# хоть и не новичок, но тоже очень полезно пересмотреть. Очень часто наталкиваюсь на что-то новое о существовании которого и не догадывался, а делал раньше по старинке.

  • @johnysh6480
    @johnysh6480 Місяць тому

    Мы передали ссылку по ссылке! Офигенно! Вы Сергей наикрутейший преподаватель!)

  • @Anton-lu1pl
    @Anton-lu1pl 4 роки тому +6

    Один из лучших курсов! Спасибо, что делитесь знаниями!

  • @КириллГетьман-у2я
    @КириллГетьман-у2я 2 роки тому +4

    Сложная тема :) Спасибо что много примеров! Лучшие уроки!

    • @ptichkasinichkamia
      @ptichkasinichkamia 2 роки тому +1

      я тоже учу сейчас на этом месте)

    • @ptichkasinichkamia
      @ptichkasinichkamia 2 роки тому

      Давно начал учить C#?

    • @КириллГетьман-у2я
      @КириллГетьман-у2я 2 роки тому +3

      @@ptichkasinichkamia Я его учил года 2 назад тоже по урокам в ютубе, но от Гоши Дударя(2 месяца занимался). Потом забросил, и вот недавно (месяц назад) открыл для себя SimpleCode. Объясняет он на уровень выше чем Дударь и в целом то что я учил 2 года назад оно помогло освежить большинство тем которые были в начале этого курса. Но дойдя до темы null и ref тут я уже как бы столкнулся с чем то новым) Интересно и сложно. Щас сижу пыхчу над домашкой ХD

    • @ptichkasinichkamia
      @ptichkasinichkamia 2 роки тому +1

      @@КириллГетьман-у2я я тоже сейчас её делаю

    • @КириллГетьман-у2я
      @КириллГетьман-у2я 2 роки тому

      @@ptichkasinichkamia Осталось сделать удаление элементов массива с начала, конца и по индексу.

  • @KorotkovaMarina
    @KorotkovaMarina 4 роки тому +5

    На каждое видео по csharp ставлю лайк. Спасибо большое за такие понятные уроки, читаю параллельно книгу по unity и еще одну книгу просто про csharp, если бы не ваши уроки, то врятли что-то поняла еще на стадии переменных! Там хоть и стараются авторы писать очень простым языком, но все равно у вас нагляднее и понятнее, возможно еще и потому что вы подаете материал дозированно.

    • @sezon_arbuzov
      @sezon_arbuzov 4 роки тому +2

      подскажи по юнити книгу

  • @artefakt4349
    @artefakt4349 4 роки тому +3

    Спасибо, Сергей!
    Уф....Ну что могу сказать... Два дня с перерывами ломал голову. После завершения, понял что хоть я и указываю слово fer, но абсолютно его не использую. А так все работает. Понимаю, что не плохо было бы предусмотреть некоторые особенности (например при получении массива с 0 элементов, программа выдаст ошибку, тк попытается убрать еще один элемент в массиве без элементов), но в контексте моей программы, это невозможно.
    static int[] Resize (ref int[] FirstArr)
    {
    Console.WriteLine(" Массив какого размера вам нужен? Введите число элементов :");
    int YourElements = int.Parse(Console.ReadLine());
    int[] FinalArr = new int[YourElements];
    for (int i = 0; i < FinalArr.Length; i++)
    {
    if (i < FirstArr.Length)
    FinalArr[i] = FirstArr[i];
    else
    FinalArr[i] = 0;
    }
    return FinalArr;
    }
    static int[] Add (ref int[] FirstArr)
    {
    Console.WriteLine(" 1 - добавить первый элемент
    2 - добавить элемент по индексу
    3 - добавить последний элемент");
    int[] FinalArr = new int[FirstArr.Length+1];
    int YourChoiсe2 = int.Parse(Console.ReadLine());
    if (YourChoiсe2==1)
    {
    Console.WriteLine(" Новый элемент добавлен в начало массива, какое значение ему присвоить?");
    int AddElem = int.Parse(Console.ReadLine());

    for (int i = 0; i < FinalArr.Length; i++)
    if (i < FirstArr.Length)
    FinalArr[i+1] = FirstArr[i];
    FinalArr[0] = AddElem;
    }
    if (YourChoiсe2==2)
    {
    Console.WriteLine(" Элемент с каим индексом требуется добавить?");
    int IndexOf = int.Parse(Console.ReadLine());
    Console.WriteLine(" Какое значение требуется присвоить этоиу элементу?");
    int AddElem = int.Parse(Console.ReadLine());
    for (int i = 0; i < FinalArr.Length; i++)
    {
    if (i < FirstArr.Length)
    FinalArr[i] = FirstArr[i];
    }
    FinalArr[IndexOf] = AddElem;
    }
    if (YourChoiсe2==3)
    {
    Console.WriteLine(" Новый элемент добавлен в конец массива, какое значение ему присвоить?");
    int AddElem = int.Parse(Console.ReadLine());
    for (int i = 0; i < FinalArr.Length; i++)
    {
    if (i < FirstArr.Length)
    FinalArr[i] = FirstArr[i];
    }
    FinalArr[^1] = AddElem;
    }
    return FinalArr;
    }
    static int[] Delete(ref int[] FirstArr)
    {
    Console.WriteLine(" 1 - удалить первый элемент
    2 - удалить элемент по индексу
    3 - удалить последний элемент");
    int[] FinalArr = new int[FirstArr.Length - 1];
    int YourChoiсe2 = int.Parse(Console.ReadLine());
    if (YourChoiсe2 == 1)
    {
    Console.WriteLine(" Первый элемент массива удален");
    for (int i = 0; i < FinalArr.Length; i++)
    FinalArr[i] = FirstArr[i+1];
    }
    if (YourChoiсe2 == 2)
    {
    Console.WriteLine(" Элемент с каим индексом требуется удалить?");
    int IndexOf = int.Parse(Console.ReadLine());
    for (int i = 0; i < FinalArr.Length; i++)
    {
    if (i != FirstArr.Length)
    FinalArr[i] = FirstArr[i];
    }
    }
    if (YourChoiсe2 == 3)
    {
    Console.WriteLine(" Последний элемент массива удален");
    for (int i = 0; i < FinalArr.Length; i++)
    {
    FinalArr[i] = FirstArr[i];
    }
    }
    return FinalArr;
    }
    static void Main(string[] args)
    {
    int[] FirstArr = { 1, 2, 3 };
    int[] FinalArr = new int[0];
    Console.WriteLine(" Создан массив { 1 2 3}");
    Console.WriteLine(" Вы можете выбрать одно из трех действий");
    Console.WriteLine(" 1 - изменить размер массива
    2 - добавить элемент в массив
    3 - удалиь элемент массива");
    int youChoise0 = int.Parse(Console.ReadLine());
    if (youChoise0 == 1)
    FinalArr = Resize (ref FirstArr);
    if (youChoise0 == 2)
    FinalArr = Add (ref FirstArr);
    if (youChoise0 == 3)
    FinalArr = Delete (ref FirstArr);
    Console.WriteLine("Ваш массив :" );
    for (int i = 0; i < FinalArr.Length; i++)
    {
    if (i==0)Console.Write("{");
    Console.Write(FinalArr[i] + " ");
    if (i == FinalArr.Length-1)Console.Write("}");
    }
    Console.WriteLine();
    Console.WriteLine("Размер массива " + FinalArr.Length);
    Console.WriteLine("Сумма элементов в массиве " + FinalArr.Sum());

  • @andrewwh40k49
    @andrewwh40k49 4 роки тому +4

    Раньше смотрел в основном англоязычный ютуб, но тут попались вы Сергей и очень понравилось, как вы объясняете. Теперь буду смотреть и вас после этого урока)

  • @leskhanmuratuly5374
    @leskhanmuratuly5374 4 роки тому +15

    Я человек простой. Вижу видео Сергея, сразу поставлю лайк)

  • @dimagovorun9413
    @dimagovorun9413 Рік тому +1

    Спасибо тебе за эти уроки! Очень внятно и доступно

  • @ib9048
    @ib9048 4 роки тому +20

    Сергей, спасибо вам за урок! Сделайте пожалуйста следующий выпуск про использование выходного параметра out.

  • @OrinokoRiver
    @OrinokoRiver 4 роки тому +5

    спасибо! все уроки - очень понятным языком

  • @АлександрПасевич-п1ч

    Ссылка на ссылку.... аж ностальгия по С++ пробила) Спасибо!!!

  • @ПавелБойко-ь2д
    @ПавелБойко-ь2д 3 роки тому +3

    Как много слов , как много информации . Но под конец урока всё таки смог осознать принцип работы этого ref.Спасибо за урок !)

  • @andromeddda847
    @andromeddda847 4 роки тому +11

    Сергей, спасибо за урок! Как всегда всё понятно и вообще супер!)

  • @Ivan-Shyriaiev
    @Ivan-Shyriaiev 4 роки тому +6

    Спасибо большое за уроки

  • @Bushido_Cat
    @Bushido_Cat 8 місяців тому +1

    смотрел этот урок 3 года назад и все было понятно, когда сам столкнулся с этой проблемой пересмотрел и понял все, на все 100%

  • @AlexPodymov
    @AlexPodymov 2 роки тому +1

    Очень понятно и классно разъяснил. Спасибо большое.

  • @3x__
    @3x__ 4 роки тому +7

    Спасибо за урок!

  • @emsigaming8947
    @emsigaming8947 4 роки тому +12

    Я только начал своё изучение С#
    Спасибо за понятные и чёткие уроки. Надеюсь ты не забросиш это дело и доведёш всё до конца👍💪💪

    • @ptichkasinichkamia
      @ptichkasinichkamia 2 роки тому +3

      как результат за 2 года?

    • @egormcfly2529
      @egormcfly2529 Рік тому +1

      @@ptichkasinichkamia зарабатывает 300к в наносекунду

  • @НикитаЛазовский-э3в

    нереально круто обьясняет, в начале урока думал ну пиздец приплыли... и ближе к 22-й минуте я начинал понемногу понимать. это некий симпл в мире кодирования, как симпл в кс го

  • @ЮрийШпорхун
    @ЮрийШпорхун 3 роки тому +4

    Единственное, что хотелось бы уточнить - иногда даже с ref происходит копирование Value Type'ов и все тут. Например, если структуру инициализировать не с помощью конструктора, а с помощью инициализатора - там можно словить movdqu/movdqa/vmovdqu. Там много условий должно совпасть чтобы это произошло и на поведение программы это не влияет, но может повлиять на производительность.

  • @noserly1
    @noserly1 Рік тому

    Самый лучший обьяснятор на ютубе

  • @fullboarduck5491
    @fullboarduck5491 4 роки тому +4

    Я познал истину ! Спасибо, Сэнсэй !

  • @currydenz5542
    @currydenz5542 4 роки тому +4

    Спасибо за ваши старания!

  • @КуцВладислав
    @КуцВладислав 4 роки тому +10

    Как всегда классный урок)

  • @RUSlTUZ
    @RUSlTUZ 4 роки тому +3

    16:35 - Недавно столкнулся с такой проблемой по незнанию. У меня это прям головную боль вызвало, почему передавая объект класса в метод тот на выходе ничего не менял. Оказалось ровно то, что Вы объяснили в видео, то есть нужно указывать ref в подобных ситуациях даже для ссылочных данных

  • @ifelru
    @ifelru 3 роки тому +2

    Спасибо за отличные уроки и домашнее задание =)

  • @_chill_relax_calm4647
    @_chill_relax_calm4647 3 роки тому

    Поддерживающий комментарий для дальнейшего развития канала

  • @oselish
    @oselish 2 роки тому +3

    На нашем направлении в универе старшекурсники и преподаватели рекомендуют твои уроки!

  • @Ali-zy3rw
    @Ali-zy3rw 2 роки тому +5

    Обалдеть, чуствую себя самым умным на свете после того как всё понял

    • @ZuraevD
      @ZuraevD Рік тому

      хахах, понимаю

    • @vladimir_pl
      @vladimir_pl Рік тому

      А ДЗ смог сделать ?

    • @ZuraevD
      @ZuraevD Рік тому +1

      @@vladimir_pl я нет😂, только первое

    • @makesuprise8259
      @makesuprise8259 11 місяців тому

      @@ZuraevD как успехи

    • @ZuraevD
      @ZuraevD 11 місяців тому

      @@makesuprise8259 норм, курс то я этот второй раз пересматривал. Ща пока остановился, другие предметы по возможности закрываю. Ну вообще да, обленился я

  • @Hitec_asian
    @Hitec_asian 4 роки тому +1

    Как же круто ты объясняешь.

  • @dimasavukov6230
    @dimasavukov6230 4 роки тому +5

    спасибо Сергей !!!

  • @mediafile9995
    @mediafile9995 3 роки тому +2

    Спасибо за урок! Всё просто супер!)) Получаю кайф от выполненного дз чисто мной)

  • @nrg8601
    @nrg8601 4 роки тому +5

    Спасибо тебе искренне!

  • @DmitryDolganov
    @DmitryDolganov 4 роки тому +5

    Сергей, привет! Сразу лайк, но посмотрю позже)))

  • @norfolkleb9851
    @norfolkleb9851 4 роки тому +3

    Отличное видео, отличный парень!

  • @DaLusiks
    @DaLusiks 4 роки тому +3

    йоу йоу йоу новый урок))) когда закончились твои уроки начал бегать по всему ютубу как дворняга(

  • @Somebody-io1sv
    @Somebody-io1sv 3 роки тому +28

    Мы встроили тебе ссылку в ссылку, чтобы ты мог передавать одну ссылку, пока находишься в другой ссылке)

  • @ДмитрийАлексеев-ж1г

    Благодарю!

  • @MrAlexPop69
    @MrAlexPop69 Рік тому

    большое спасибо за столь подробное объяснение

  • @АлексейФидель-п2г

    Дам совет для начинающих и тем у кого есть еще не большой опыт. Видео помогает на более лёгкоммастерства

  • @ToKaMaK-MS
    @ToKaMaK-MS Рік тому

    Спасибо. Полезно и позновательно.

  • @lexgame861
    @lexgame861 4 роки тому +5

    Спасибо большое за видео)))

  • @k1ntoho
    @k1ntoho 4 роки тому +3

    Ура, новый видос!)

  • @MihailSofianou
    @MihailSofianou 4 роки тому +1

    Очень долго ждал этот урок

  • @chopperpopper8970
    @chopperpopper8970 3 роки тому +2

    Комментарии в поддержку канала. Просьба не забрасывать это дело и конкретно курс по C#.

  • @qwerty89993
    @qwerty89993 Рік тому

    Спасибо! Шикарное объяснение

  • @bignumber9483
    @bignumber9483 4 роки тому +2

    Спасибо за урок

  • @veronikagordynets992
    @veronikagordynets992 3 роки тому +1

    наконец-то я поняль! Спасибо, Серега!

  • @Vlaska_1
    @Vlaska_1 3 місяці тому

    офигеть, первая домашка где я не могу решить задания😮, смог только 1 задание и то без Resize(с ним у меня выходила ошибка CS0176 )

  • @LaggeRYT
    @LaggeRYT 3 роки тому +4

    Нашел этот канал случайно, всё довольно доходчиво, но некоторые моменты я иногда не понимаю, и сижу с вопросом в голове ""а зачем так делать если это совсем не нужно""
    к чему, я ПЫТАЮСЬ понять язык, но даётся с трудом, особенно какие то моменты, например с дз, просматривая тему, вроде бы как в голове отложилось, и порой понимаешь , что куда откуда и для чего, находишь некую связь, НО когда пытаюсь написать что то сам, например попробовать сделать дз, я вступаю в некий ступор, я не знаю с чего начать, что делать, что за чем следует, как проявить ту или иную задачу в голове. (надеюсь я дойду до уровня когда хотяб начну понимать). Но когда смотрю как ты выполнил дз, я сижу и думаю, так надо было делать так,и как бы понимаю весь код,я могу понять что куда и откуда, но сам писав код, затрудняюсь это делать, дай пару советов, как перебороть в себе этот момент со ступором. По урокам притензий не может, всё довольно доходчиво и хороший голос на слух, но я тупой ))) дай совет!!!

    • @bogdansalogub8303
      @bogdansalogub8303 3 роки тому +3

      Значит ты не понимаешь, как строится структура самой программы( какая область видимости за что отвечает, где писать методы, а где основной код и тд). Пересмотри первые видосы или просто пиши простые программки по типу додать 2 числа, и постепенно добавляй в них что-то еще(например вывод сообщения). По сути, тебе просто не хватает практики. Вбиваешь в интернете задачки по с# и делаешь одну за другой)

    • @hryhoriinevmerzhytskyi4299
      @hryhoriinevmerzhytskyi4299 2 роки тому +1

      як твої успіхи через рік?

    • @LaggeRYT
      @LaggeRYT 8 місяців тому +3

      угар хотите ? прошло три года а я до сих пор учу )))))))

  • @nawakoff2581
    @nawakoff2581 4 роки тому +19

    Идея для следующего видео по Windows Forms: приложение, которое рисует фрактальное дерево, при чём пользователь сам задаёт изначальную длину ветки, делитель каждой следующей ветки, угол поворота и т.д.

  • @Proffiservices
    @Proffiservices 3 роки тому +2

    Спасибо за видео и лайк! Сергей, хотелось бы больше практических заданий или ссылку где их брать. Так же было бы интересно , чтоб Вы объяснили , что ещё нужно параллельно учить с языком С# в дополнении. Или пока только эти знания, а потом ещё, что-то?

  • @serhiisaviiskyi2382
    @serhiisaviiskyi2382 4 роки тому +10

    Спасибо большое за урок) Скоро ли будет ООП?

  • @mariiasafonova5510
    @mariiasafonova5510 2 роки тому

    spasibo za urok, ochen interesno

  • @АлександрГребенюк-д9ъ

    закипел я на этом видосе, особенно под конец.

  • @ИванДраго-о1щ
    @ИванДраго-о1щ 2 роки тому +1

    Отлично!

  • @АтаманенкоНазарИН-03

    Кто хочет задание какое то выполнить, попробуйте такое.
    Сделайте змейку. Ставится точка, и от нее уже последующая, после последующей еще одна и.тд....
    Для поворотов(Их 4) используйте методы, для методов нужно будет указывать ref, пример работы гляньте у меня) Игрался долго с такой штукой(код так же скину).
    (Все должно быть в .Net Core) не фреймворк.

  • @Ivan-od5qc
    @Ivan-od5qc 4 роки тому +1

    Ты просто бомба!! 💣 👍

  • @dobrinyanicitich7514
    @dobrinyanicitich7514 4 роки тому +1

    Не знал, спасибо за труд!

  • @ЯрославГоловко-ф6и
    @ЯрославГоловко-ф6и 4 роки тому +5

    Спасибо

  • @alexmam2886
    @alexmam2886 3 роки тому +1

    Больше домашек, ушло 4 дня на решение всех, но очень понравилось. Самые сложные - это задания по элементам. Оба решения по элементам, добавлению и удалению, почему-то получились разные. Последнее в разы короче вышло.

    • @maratyakupov3546
      @maratyakupov3546 Рік тому

      А как вам удалось изменить размер массива, не затрагивая при этом другие его элементы и их значения? Как вы смогли ввести изменения в длину массива без метода Resize? Подскажите, я в отчаянии.

  • @ЕвгенийЕмельянов-п2ы
    @ЕвгенийЕмельянов-п2ы 11 місяців тому

    спасибо. очень четко.

  • @liko8019
    @liko8019 4 роки тому +1

    лучший в своём деле

  • @akstis4183
    @akstis4183 4 роки тому +3

    миллион раз спасибо

  • @АлександрОбыкновенный-е9д

    Можно это интерпретировать вот так:
    ref создает еще одно поле в оперативной памяти рядом со стеком, где лежат ссылки на значимые(value type) объекты. Если в голове всё представить именно так, то как и в случае с интерпретацией многомерных массивов как полок с тетрадями, всё очень легко усваивается. Надеюсь кому-то помог)

  • @artlinestudio6735
    @artlinestudio6735 3 роки тому +3

    Хороший урок. Полезный, интересный и без забегания на 100500 шагов вперёд. Спасибо Сергей!

  • @АндрейКвасников-и9м

    Чел ты гений, смотрю для ознакомления и понимаю, что тебе цены не было бы в моем унике

  • @arevminn9407
    @arevminn9407 Рік тому

    Спасибо вам ❤😍

  • @НадеждаИванова-п1с
    @НадеждаИванова-п1с 3 роки тому +1

    Благодарю

  • @АламанСабақтары
    @АламанСабақтары 4 роки тому +5

    Красава

  • @threedking
    @threedking 2 роки тому

    Указатели плюсов это что-то новое для шарпа)

  • @alexgrekov7304
    @alexgrekov7304 3 роки тому +1

    Добрый день! Благодаря Вашим видео легче учить С#, но все же заметил один интересный момент,подскажите пожалуйста,если Вам не сложно)
    Дело в том,что когда использую структуру,то так как она не является статичной,то и метод Foo не видит её. Когда же вписываю публичные статические переменные,то метод начинает видеть их. На Вашем видео же вроде не обязательно ставить static перед переменными,когда у меня же требуется в Visual Studio. Немного не понял, почему так произошло,в любом случае с удовольствием буду продолжать смотреть Ваши видео)

  • @НикитаСолотин
    @НикитаСолотин 3 роки тому

    Спасииибо!

  • @SuperAbisal
    @SuperAbisal 4 роки тому +1

    Спасибо .

  • @artemky3bmu45
    @artemky3bmu45 Рік тому

    Спасибо большое

  • @denr721
    @denr721 2 роки тому +2

    Раза 3 пересмотрел чтобы полностью понять материал, спасибо огромное вам. Я правильно понимаю, что когда мы используем ref, то мы присваеваем переменной ссылку точно такую же, что и у другой переменной, но с тем отличием, что, когда мы будем взаимодействовать с этой ссылкой (менять её и т.д) то она будет меняться и в другой переменной, у которой мы её взяли, правильно?
    🐱

    • @denr721
      @denr721 2 роки тому

      Так же можно сказать, что мы копируем ссылку или само значение, но с оговоркой: типо мы сможем изменять и начальное состояние переменной.
      Можно даже рассмотреть это на примере: У нас есть МакДак и в нём делают бургеры и мы решили дома сделать себе бургер точно такой же как и в МакДаке - получается здесь мы копируем только лишь бургер.
      А вот если будем использовать ref, то когда мы решим сделать бургер точно такой же как и маке, то мы то сделаем его. Но если мы засунем туда какой - нибудь другой ингридиент, ну к слову БЕКОН, то этот БЕКОН появиться и в бургерах у МакДака, Верно?

    • @-unity-
      @-unity- Рік тому

      Что-то так много всего написано...
      "Я правильно понимаю, что когда мы используем ref, то мы присваеваем переменной ссылку точно такую же, что и у другой переменной, но с тем отличием..." - без отличия. Просто через ref передаётся ссылка. И когда мы в методе что-то делаем с этой переменной, то мы уже работает с теми значениями, куда указывает ссылка, а не с их копиями.

  • @bur-mq1mq
    @bur-mq1mq Рік тому

    Спасибо, понял с 1 раза

  • @DimdimichCh
    @DimdimichCh 3 роки тому +2

    Читаю комменты и виду что люди понимают и пишут что все понятно. А я понял только половину с 3 раза. Но я не сдамся, буду смотреть пока не пойму. Все остальное было проще понять.

  • @egorkalmykov4003
    @egorkalmykov4003 3 роки тому

    Спасибо !!!

  • @CraneHeree
    @CraneHeree 4 роки тому

    блин, я сейчас только на 11 уроке, решил посмотреть последний урок.... Да, надеюсб в скором времени я во всем этом буду хорошо разбираться, кстати ты клево объясняешь

  • @ElMirage89
    @ElMirage89 4 роки тому +1

    Сергей, добрый день.
    Вопрос: в примере, который начинается с 26:00 мы же могли вместо ref int b = ref Foo(arr); написать ref int b = Foo(arr); ? Ведь Foo(arr) итак возвращает нам ссылку на элемент Numbers[0].
    Верно?

    • @hdfroggit3051
      @hdfroggit3051 3 роки тому

      Тот же вопрос, но компилятор выдает ошибку "Невозможно инициализировать значением переменную по ссылке"

  • @RebellonRM
    @RebellonRM 3 роки тому +2

    Но даже если переменная а в методе Foo совершенно другая переменная, то при возвращении в main её значение тоже меняется с -5 на 2. Сидел втуплял, но так и не втупил. Ведь мне говорят, что они разные, но значения в них меняются одинаково.

    • @-unity-
      @-unity- Рік тому +1

      "то при возвращении в main её значение тоже меняется с -5 на 2. " - нет, не так. При выходе из метода значения всех переменных, которые были внутри этого метода, уничтожаются. Следовательно, больше нет никакой переменной "а" внутри Foo. И как только ты выходишь из любого метода, то попадаешь в область видимости той функции, в которую ты вышел. В этом примере: выходя из Foo, попадаешь в Main. А тут у нас своя переменная "а", которая имеет своё значение, равное 2.
      Итак, нужно помнить, что при выходе из метода уничтожаются все значения всех переменных этого метода.

  • @АртёмГуртиков-х9ч
    @АртёмГуртиков-х9ч 4 роки тому +2

    Сергей, большое спасибо за уроки, но меня очень интересует вопрос: какого уровня знаний необходим си шарп, чтобы я мог писать игры на unity? Достаточно ли уже вышедших уроков, если нет то какие темы изучать самому??

    • @Anton-lu1pl
      @Anton-lu1pl 4 роки тому +1

      Достаточно, в юнити много своих приколов, много методов унаследованных от класса MonoBehaviour, о которых тут явно речь идти не будет) Посмотрите видео coздания игры, увидите +- необходимый уровень знаний C#

    • @strannik-klp
      @strannik-klp 4 роки тому +2

      Как минимум базовое понятие ООП нужно усвоить) Там всё на классах.

    • @-unity-
      @-unity- Рік тому

      Пишу игры на Юнити уже седьмой год. И всё равно нет ощущения, что я достаточно знаю си-шарп. Чтобы понять, достаточно тебе твоих знаний или нет, есть простой способ определения: начни создавать собственную игру. Для этого надо понять философию Юнити. Что такое игровые объекты, что такое компоненты, зачем нужны всякие ресурсы/ассеты. И вот как начнёшь добавлять скрипты к игровым объектам, сразу станет понятно, достаточно твоих знаний или нет.

  • @ИванДраго-о1щ
    @ИванДраго-о1щ 2 роки тому +1

    Пришел к мнению что первый язык программирования должны быть плюсы . Хороший старт для освоения всех остальных .

    • @-unity-
      @-unity- Рік тому

      Нууууу... я бы не стал начинать с плюсов. Всё-таки там очень много моментов, которые не являются интуитивно понятными. И к тому же много неоднозначностей. Шарп такие вещи сразу отрубает административными методами: "нельзя так делать, иначе тут можно понять двояко".

  • @Estarossa_Miloserdia
    @Estarossa_Miloserdia 2 роки тому +1

    Ура дз))

  • @X1th
    @X1th Рік тому

    Хочу ответить словами киногероя по youtube запросу: Дядя Джуниор - Клан сопрано
    xD придется пересматривать несколько раз)

  • @aliaksandrastapchyk8352
    @aliaksandrastapchyk8352 4 роки тому +12

    Нничего себе, что у тебя за статистика по лайки/дизлайки(1100/1) ?)

  • @sungvin
    @sungvin 4 роки тому +10

    Вижу, что многие люди отвалились, ведь просмотры снижаются, но что уж тут поделать, это неизбежно. Что касается меня, то я вот прям сейчас начал смотреть твои серии и надеюсь, что не заброшу их. В 11 классе нам на ИКТ дали наконец-то попрактиковаться с паскалем и мне понравилось там писать мини игрушку, в которой нужно бить босса каждый ход. Понравилось мне так, что затем на телефон скачал компилятор паскаля. На тот момент в игре уже сделал завязанные на рандоме критические удары и регенерации босса, однако в школе мне друг сказал, что давай ка ты не на паскале это будешь делать, а на C#. Я такой подумал-подумал и, мостоятельно изучив малеха синтаксис, перевел эту игруху с паскаля на с++. Ну и забил конечно. А недавно, на стриме одного ютубера, один парень спрашивал, не хочет ли кто-нибудь поучаствовать в разработке его игры, ведь он делает модельки для Unity. Вот тут конечно и спросил он меня, а умею ли я на c# шаманить. Подумал-подумал я такой и решил скачать visual studio, и найти какой-нибудь гайдик. В это время уже на ютубе везде была реклама C, C++ и С#, ведь у нас тут век таргетированной рекламы. И тут бац, в рекомендации попадает твое видео по C#. Настало время переводить мою игруху сюда, я так понимаю)

    • @minoddein7205
      @minoddein7205 4 роки тому

      Успехов тебе

    • @sungvin
      @sungvin 4 роки тому

      @@minoddein7205 Console.WriteLine("Спасибон-н!");

    • @АнтонМирошниченко-в8х
      @АнтонМирошниченко-в8х 3 роки тому

      Здравствуйте. Прошло 9 месяцев. Как успехи?)

    • @sungvin
      @sungvin 3 роки тому

      @@АнтонМирошниченко-в8х В какой-то момент я посмотрел все серии, которые были доступны на тот момент и стал ждать новых видео, но отвлёкся на что-то другое. Время шло, а я и не заходил ни разу в visual studio со времен уроков. Недавно мой одноклассник сказал, что у них в вузе началось программирование (как и у меня, но у нас они обучают только алгоритмам работы с фортраном (древний язык, лет 50 ему)). Он вдохновился и решил сделать что-то своё, а это вдохновило и меня, так что я вспомнил про simplecode и заглянул на канал, обнаружив тут кучу новых роликов. Посмотрел и записал ещё пару уроков и снова медленно забыл это дело из-за переживаний в универе, ведь у меня ещё задолженность с первой сессии осталась. Сейчас почти ничего полезного не делаю и пытаюсь отвлечь свой мозг ютубом и сериалами (агент картер и agents of s.h.i.e.l.d.), чтобы не думать о том, что я ни черта не понимаю мат. анализ и теоретическую механику. То ли ещё будет.

    • @ФедрФедров-ч4э
      @ФедрФедров-ч4э 3 роки тому

      @@sungvin мечта - наркомания, цель - кто не приносит плод и кто закопал свои таланты осужден будет, делай то что полезно.