Уроки C# - Маленький трюк C# (синтаксический сахар)
Вставка
- Опубліковано 1 вер 2022
- Полный плейлист доступен по ссылке:
• Уроки C# • Лучшие урок...
Эксклюзив для спонсоров ➜ / xpuct
Если недоступна спонсорка ➜ boosty.to/xpuct
#WindowsForms #WindowsForms #WindowsForms - Наука та технологія
Хех, в достаточно далёкие времена я только-только начинал и учился в том числе и по твоим урокам. Сейчас я мидл, а уведомления с твоего канала по прежнему вызывают теплые чувства)
Стоит записывать трюки. Мне нравится концентрация кода, без повторения, но чтобы это оставалось понятным и подлежащим какому-то принципу програмирования
Однозначно надо. Чем больше видео о программировании у вас на канале, тем больше мы о нем узнаем.
Большое спасибо! Вчера смотрел, думал "ну да, такая мелочь, вряд ли где-то пригодится, но интересно". А буквально сегодня на работе как раз выпал удобный случай)
Лайк не глядя. А глядя - два лайка)
Ура, ждал ролик, каждый день на канал заходил))
А нужно всего лишь включить уведомления или сабнутся в ТГ канал))
@@mqst Давно уже, просто нравится заходить на его канал) Вдохновляюсь
Как раз смотрю курс по C#, классно знать что контент по нему продолжает выходить
Концепция понравилась, думаю стоит сделать отдельную рубрику "Синтаксический сахар".
А уже в самой рубрике сделать разбор старого кода, но уже с применением "сахара".
Взял на заметку. Как раз есть где использовать. Спасибо!
Пользуюсь подобным трюком иногда, правда в Basic4Android, когда не хочу несколько раз вызывать один и тот-же метод. Особенно если этот вызов где-то в большом цикле.
Лучше 1 раз выделить статическую переменную и запомнить в неё, чем несколько раз напрягать процессор вычислениями.
Магия за 5 секунд 🤯
В Юнити часто подобное встречается
Лучший🔥 ждём тему для notepad++ :)
Уже ➜ boosty.to/xpuct
@@XpucT юхууу🥳 огромное спасибо тебе за твой труд)
Спасибо!
Странно, что об этом мало кто знал =D
Очень доступно и интересно все рассказываешь! Спасибо😉
Спасибо тебе огромедное... врят-ли этот трюк я буду юзать... но видосы смотрю с удовольствием )
7:02 заголовок ))))
у вас очень красивая тема visual studio, скажите название, пожалуйста :)
Это не просто тема, это полностью авторская переработка всего интерфейса Visual Studio, над которой Я работал 3 месяца. Тут не просто красиво, а полезно для глаз, подробнее об этом Я рассказывал в видео для спонсоров:
ua-cam.com/users/XpucTcommunity
Тема, доп.материалы и эксклюзив становится доступным сразу, как становишься спонсором канала.
Если недоступна спонсорка, весь дополнительный контент есть на Boosty ➜ boosty.to/xpuct
спасибо !!
💪
а можно перенести объявление переменной в скобку где происходит ее инициализация? вроде как область видимости позволяет... (минус строка и пара символов =))
object k = key.OpenSubKey(sub).GetValue(""))!=null&&
key.OpenSubKey(k.ToString())!=null
это даже более очевидно для меня было
Пасиба
На самом деле это просто особенность оператора присваивания. Аналогично Object Assign(Object obj) { /* ... */; return this; }
Лайкос
В js/TS тоже что - то похоже есть
Еще лучше будет использовать не object, а конкретный тип - так, во-первых, избавимся от преобразования типов, а во-вторых мы будем иметь функционал нужного нам типа. Очень конечно специфичная возможность, и зачастую делает код неочень читаемым.
Конкретно в данном случае, кроме object не даёт вписать тип, ибо это ответ от него. И подойдёт лишь object. Проверь 👍
Выглядит интересно, но надо думать..
Отличное видео :)
Что за тема на Visual Studio?
Это не просто тема, это полностью авторская переработка всего интерфейса Visual Studio, над которой Я работал 3 месяца. Тут не просто красиво, а полезно для глаз, подробнее об этом Я рассказывал в видео для спонсоров:
ua-cam.com/users/XpucTcommunity
Тема, доп.материалы и эксклюзив становится доступным сразу, как становишься спонсором канала.
Если недоступна спонсорка, весь дополнительный контент есть на Boosty ➜ boosty.to/xpuct
Стоит все таки прикладывать ссылку на исходничек к видео...
Исходничек из памяти, который открыл сам.
Если не верите, листаните вниз в комменты, Я не первый, кто открыл это методом тыка и догадкой возможности языка.
Или Вы про Property Pattern? Если про него, то это не Шаблон свойств. Он просто в пример был приведён.
И да, Урок 0 ясно гласит про Google.
Здорово, а главное логично.
Правда, хотелось бы заглянуть "под капот", стоит ли овчинка выделки? То есть посмотреть в дебаггере, как на уровне инструкций отрабатывает тот и этот вариант. Когда-то еще в школе увлекался ассемблером (привет, ZX-spectrum!), откуда и узнал, что короткий код не всегда самый лучший.
Первая мысль была, когда код писался: почему не используется вспомогательная переменная? И тут бац - а это и есть та фишечка. А я-то думал, все всегда так пишут...
мде код короче, а 1 доп объект создается )
)) 👍
Жалко, сам додумался до этого трюка ещё давно
Да нахер они нужны, эти ваши сахары? Как программистом на работу устроится? Вот главный и важный вопрос, а это всё странь бестолковая. Без работы это всё не имеет значения.
Извини, пожалуйста, Я больше так не буду...
😂😂
Ахахах 😂😂😂😂 если ты считаешь, что упрощение кода не нужно в бытие , то тебя вряд ли возьмут на хорошую работу)
Так вы и не можете устроиться на работу потому что не знаете что такое синтаксический сахар!!! Если вы не знаете основы и не знаете как с ними работать, вы работу не найдёте! Хотя дворником наверно устроитесь.....
@@user_evil загнул конечно, где ты видел дворников, которые знают примитивы программирования?) ну конечно саму мысль поддерживаю )
Это очень помогает. Сначала кажется что это мелочи.
Разве не проще? Должно работать.
key!.GetSubKeyNames()
.Where(sub => key.OpenSubKey(sub)?.GetValue(string.Empty)?.ToString() is not null)
.ToArray();
Ну да, фишка интересная, но реально бесполезная, вот за 7 лет ни разу не пригодилась. Чем то на замыкания смахивает, но они тоже мне нигде не пригодились еще.
Если бы работало, то да
Создай 2 варианта и проверь
У Меня, например, первый попавшийся .ai, который ссылается на Illustratоr.ai, которого нет в реестре.
@@XpucT у меня на скорую руку твой и мой вариант выдают одни и те же массивы, может мой реестр не такой убитый, но без фильтрации возвращает на 1000 объектов больше, чем с ней. Я уж сильно не погружался, но думаю есть варианты без повторений это сделать, кроме выноса переменной.
@@user-pk2pg5qb9d Твой вариант собрал 3368 вариантов, когда должно быть 929.
Реестр, к слову, вообще ничем не убитый, стоит только Visual Studio, всё остальное портативное.
@@XpucT печально. Спасибо, что проверил!
У Меня друг слегка перекостылял Твой вариант и таки получилось короче:
using (var key = Registry.ClassesRoot.OpenSubKey(""))
{
key.GetSubKeyNames().Where(sub =>
key.OpenSubKey(key.OpenSubKey(sub).GetValue("")?.ToString() ?? ".") != null)
.ToList().ForEach(x =>
{
});
}
Не сильно короче, но короче, а это было главное =)
Вроде такой вариант ничем не хуже
key.GetSubKeyNames().Where(sub =>
{
var k = key.OpenSubKey(sub).GetValue("");
return k != null && key.OpenSubKey(k.ToString()) != null;
}).ToList().ForEach(x=>...);
Если бы работал, то да.
Проверь перед отправкой.
Я вот зашёл на boosty и у тебя стоит поддержка проекта почему нет на UA-cam?
На UA-cam - это спонсорка.
Да и желающих просто так закинуть в поддержку, как видишь, немного.
Ты выложи кто желает поддержит. У тебя было в телеграмме. И это было хорошо только у меня была проблема. Я не мог выбрать больше сумму и после двух раз PayPal заблочил.
Вот сейчас чисто из-за тебя зарегистрировался в boosty.
@@lisiger69 спасибо! Очень сильно 💪
Сделал Мой день 🤟
@@lisiger69 из-за всей этой ситуации, на UA-cam вообще непонятно, как работает спонсорка и доход. Ибо он как бы идёт, но его нет. И дело не только в выводе. Просто уже за три месяца баланс менялся. То 150 долларов, то 22. Вообще непонятно. Ждём, когда это всё кончится.