Уроки C# - Маленький трюк C# (синтаксический сахар)

Поділитися
Вставка
  • Опубліковано 1 вер 2022
  • Полный плейлист доступен по ссылке:
    • Уроки C# • Лучшие урок...
    Эксклюзив для спонсоров ➜ / xpuct
    Если недоступна спонсорка ➜ boosty.to/xpuct
    #WindowsForms #WindowsForms #WindowsForms
  • Наука та технологія

КОМЕНТАРІ • 77

  • @infinitynoir5441
    @infinitynoir5441 Рік тому +17

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

  • @Gretanit
    @Gretanit Рік тому +21

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

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

    Однозначно надо. Чем больше видео о программировании у вас на канале, тем больше мы о нем узнаем.

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

    Большое спасибо! Вчера смотрел, думал "ну да, такая мелочь, вряд ли где-то пригодится, но интересно". А буквально сегодня на работе как раз выпал удобный случай)

  • @happyfog15
    @happyfog15 Рік тому +2

    Лайк не глядя. А глядя - два лайка)

  • @ivanhurbatov4307
    @ivanhurbatov4307 Рік тому +4

    Ура, ждал ролик, каждый день на канал заходил))

    • @mqst
      @mqst Рік тому +2

      А нужно всего лишь включить уведомления или сабнутся в ТГ канал))

    • @ivanhurbatov4307
      @ivanhurbatov4307 Рік тому +2

      @@mqst Давно уже, просто нравится заходить на его канал) Вдохновляюсь

  • @deadbread8446
    @deadbread8446 Рік тому +3

    Как раз смотрю курс по C#, классно знать что контент по нему продолжает выходить

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

    Концепция понравилась, думаю стоит сделать отдельную рубрику "Синтаксический сахар".
    А уже в самой рубрике сделать разбор старого кода, но уже с применением "сахара".

  • @grigorihovhannisyan881
    @grigorihovhannisyan881 Рік тому +3

    Взял на заметку. Как раз есть где использовать. Спасибо!

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

    Пользуюсь подобным трюком иногда, правда в Basic4Android, когда не хочу несколько раз вызывать один и тот-же метод. Особенно если этот вызов где-то в большом цикле.
    Лучше 1 раз выделить статическую переменную и запомнить в неё, чем несколько раз напрягать процессор вычислениями.

  • @redtayron6390
    @redtayron6390 Рік тому +2

    Магия за 5 секунд 🤯

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

    В Юнити часто подобное встречается

  • @xxray768
    @xxray768 Рік тому +5

    Лучший🔥 ждём тему для notepad++ :)

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

      Уже ➜ boosty.to/xpuct

    • @xxray768
      @xxray768 Рік тому +2

      @@XpucT юхууу🥳 огромное спасибо тебе за твой труд)

  • @cryptoeyt
    @cryptoeyt Рік тому +2

    Спасибо!

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

    Странно, что об этом мало кто знал =D

  • @user-nn5ts4ip7z
    @user-nn5ts4ip7z Рік тому

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

  • @foton5033
    @foton5033 Рік тому +2

    Спасибо тебе огромедное... врят-ли этот трюк я буду юзать... но видосы смотрю с удовольствием )

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

    7:02 заголовок ))))

  • @disadiuauiosdaiaudiossaais8862

    у вас очень красивая тема visual studio, скажите название, пожалуйста :)

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

      Это не просто тема, это полностью авторская переработка всего интерфейса Visual Studio, над которой Я работал 3 месяца. Тут не просто красиво, а полезно для глаз, подробнее об этом Я рассказывал в видео для спонсоров:
      ua-cam.com/users/XpucTcommunity
      Тема, доп.материалы и эксклюзив становится доступным сразу, как становишься спонсором канала.
      Если недоступна спонсорка, весь дополнительный контент есть на Boosty ➜ boosty.to/xpuct

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

    спасибо !!

  • @serpotapov
    @serpotapov Рік тому +3

    💪

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

    а можно перенести объявление переменной в скобку где происходит ее инициализация? вроде как область видимости позволяет... (минус строка и пара символов =))
    object k = key.OpenSubKey(sub).GetValue(""))!=null&&
    key.OpenSubKey(k.ToString())!=null

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

      это даже более очевидно для меня было

  • @temnij52
    @temnij52 Рік тому +3

    Пасиба

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

    На самом деле это просто особенность оператора присваивания. Аналогично Object Assign(Object obj) { /* ... */; return this; }

  • @eject37
    @eject37 Рік тому +3

    Лайкос

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

    В js/TS тоже что - то похоже есть

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

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

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

      Конкретно в данном случае, кроме object не даёт вписать тип, ибо это ответ от него. И подойдёт лишь object. Проверь 👍

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

    Выглядит интересно, но надо думать..

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

    Отличное видео :)

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

    Что за тема на Visual Studio?

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

      Это не просто тема, это полностью авторская переработка всего интерфейса Visual Studio, над которой Я работал 3 месяца. Тут не просто красиво, а полезно для глаз, подробнее об этом Я рассказывал в видео для спонсоров:
      ua-cam.com/users/XpucTcommunity
      Тема, доп.материалы и эксклюзив становится доступным сразу, как становишься спонсором канала.
      Если недоступна спонсорка, весь дополнительный контент есть на Boosty ➜ boosty.to/xpuct

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

    Стоит все таки прикладывать ссылку на исходничек к видео...

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

      Исходничек из памяти, который открыл сам.
      Если не верите, листаните вниз в комменты, Я не первый, кто открыл это методом тыка и догадкой возможности языка.
      Или Вы про Property Pattern? Если про него, то это не Шаблон свойств. Он просто в пример был приведён.
      И да, Урок 0 ясно гласит про Google.

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

    Здорово, а главное логично.
    Правда, хотелось бы заглянуть "под капот", стоит ли овчинка выделки? То есть посмотреть в дебаггере, как на уровне инструкций отрабатывает тот и этот вариант. Когда-то еще в школе увлекался ассемблером (привет, ZX-spectrum!), откуда и узнал, что короткий код не всегда самый лучший.

  • @user-pc9wg4jt8l
    @user-pc9wg4jt8l Рік тому +3

    Первая мысль была, когда код писался: почему не используется вспомогательная переменная? И тут бац - а это и есть та фишечка. А я-то думал, все всегда так пишут...

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

    мде код короче, а 1 доп объект создается )

  • @3x__
    @3x__ Рік тому

    )) 👍

  • @temnij52
    @temnij52 Рік тому +2

    Жалко, сам додумался до этого трюка ещё давно

  • @user-lc9wd8xu2r
    @user-lc9wd8xu2r Рік тому

    Да нахер они нужны, эти ваши сахары? Как программистом на работу устроится? Вот главный и важный вопрос, а это всё странь бестолковая. Без работы это всё не имеет значения.

    • @XpucT
      @XpucT  Рік тому +9

      Извини, пожалуйста, Я больше так не буду...

    • @mikhail5402
      @mikhail5402 Рік тому +2

      😂😂

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

      Ахахах 😂😂😂😂 если ты считаешь, что упрощение кода не нужно в бытие , то тебя вряд ли возьмут на хорошую работу)

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

      Так вы и не можете устроиться на работу потому что не знаете что такое синтаксический сахар!!! Если вы не знаете основы и не знаете как с ними работать, вы работу не найдёте! Хотя дворником наверно устроитесь.....

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

      @@user_evil загнул конечно, где ты видел дворников, которые знают примитивы программирования?) ну конечно саму мысль поддерживаю )

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

    Это очень помогает. Сначала кажется что это мелочи.

  • @user-pk2pg5qb9d
    @user-pk2pg5qb9d Рік тому

    Разве не проще? Должно работать.
    key!.GetSubKeyNames()
    .Where(sub => key.OpenSubKey(sub)?.GetValue(string.Empty)?.ToString() is not null)
    .ToArray();
    Ну да, фишка интересная, но реально бесполезная, вот за 7 лет ни разу не пригодилась. Чем то на замыкания смахивает, но они тоже мне нигде не пригодились еще.

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

      Если бы работало, то да
      Создай 2 варианта и проверь
      У Меня, например, первый попавшийся .ai, который ссылается на Illustratоr.ai, которого нет в реестре.

    • @user-pk2pg5qb9d
      @user-pk2pg5qb9d Рік тому

      @@XpucT у меня на скорую руку твой и мой вариант выдают одни и те же массивы, может мой реестр не такой убитый, но без фильтрации возвращает на 1000 объектов больше, чем с ней. Я уж сильно не погружался, но думаю есть варианты без повторений это сделать, кроме выноса переменной.

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

      ​@@user-pk2pg5qb9d Твой вариант собрал 3368 вариантов, когда должно быть 929.
      Реестр, к слову, вообще ничем не убитый, стоит только Visual Studio, всё остальное портативное.

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

      @@XpucT печально. Спасибо, что проверил!

    • @XpucT
      @XpucT  Рік тому +2

      У Меня друг слегка перекостылял Твой вариант и таки получилось короче:
      using (var key = Registry.ClassesRoot.OpenSubKey(""))
      {
      key.GetSubKeyNames().Where(sub =>
      key.OpenSubKey(key.OpenSubKey(sub).GetValue("")?.ToString() ?? ".") != null)
      .ToList().ForEach(x =>
      {
      });
      }
      Не сильно короче, но короче, а это было главное =)

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

    Вроде такой вариант ничем не хуже
    key.GetSubKeyNames().Where(sub =>
    {
    var k = key.OpenSubKey(sub).GetValue("");
    return k != null && key.OpenSubKey(k.ToString()) != null;
    }).ToList().ForEach(x=>...);

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

      Если бы работал, то да.
      Проверь перед отправкой.

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

    Я вот зашёл на boosty и у тебя стоит поддержка проекта почему нет на UA-cam?

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

      На UA-cam - это спонсорка.
      Да и желающих просто так закинуть в поддержку, как видишь, немного.

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

      Ты выложи кто желает поддержит. У тебя было в телеграмме. И это было хорошо только у меня была проблема. Я не мог выбрать больше сумму и после двух раз PayPal заблочил.

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

      Вот сейчас чисто из-за тебя зарегистрировался в boosty.

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

      @@lisiger69 спасибо! Очень сильно 💪
      Сделал Мой день 🤟

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

      @@lisiger69 из-за всей этой ситуации, на UA-cam вообще непонятно, как работает спонсорка и доход. Ибо он как бы идёт, но его нет. И дело не только в выводе. Просто уже за три месяца баланс менялся. То 150 долларов, то 22. Вообще непонятно. Ждём, когда это всё кончится.