Уроки C# - Лямбда выражение, lambda expression - C#

  Рет қаралды 58,950

XpucT

XpucT

5 жыл бұрын

Донаты и на кофе ➜ t.me/win10tweaker/171
Эксклюзив для спонсоров ➜ / xpuct
Если недоступна спонсорка ➜
Основной канал:
/ jailbreakvideo
#Лямбда #ЛямбдаВыражение #Lambda #СиSharp #СиШарп

Пікірлер: 97
@Slonick
@Slonick 5 жыл бұрын
Переименовывать переменные лучше всё же через ctrl+R, ctrl+R
@XpucT
@XpucT 5 жыл бұрын
Артём, это просто мегаохуительно 👏 Найду момент, чтобы показать потом в следующих видео 👍
@awfsdgsgeefdgwef
@awfsdgsgeefdgwef 5 жыл бұрын
@@XpucT можешь сделать урок по полезным хоткеям? Я до сих пор не знаю, как комментировать несколько строк :(
@XpucT
@XpucT 5 жыл бұрын
@@awfsdgsgeefdgwef не пропускай видео. Это уже было в Уроке 1
@Slonick
@Slonick 5 жыл бұрын
@@awfsdgsgeefdgwef выбираешь несколько строк ctrl+k, ctrl+c чтобы закомментировать и ctrl+k, ctrl+u чтобы раскомментировать
@SEOmaster_real
@SEOmaster_real 4 жыл бұрын
Это божественно
@vladt3834
@vladt3834 4 жыл бұрын
На собесе: - что произойдёт? - Блокнот произойдёт, как обычно ;) //теперь, эта фраза как таракан речи. Спасибо)
@grabson8232
@grabson8232 4 жыл бұрын
2:55 - и тут мне захотелось сделать прогу которая будет делать взрывать комп блокнотами 😂
@Vladislav11111
@Vladislav11111 4 жыл бұрын
Какой же крутой!!! Очень подробно объясняешь
@VictorIzotov
@VictorIzotov 2 жыл бұрын
Очень весело и эффектно объяснил) Благодарочка) Подписка и лайк
@ilyastrojnov7627
@ilyastrojnov7627 4 жыл бұрын
Начал изучать c#, отличные видео и формат подачи!
@vladisslavss
@vladisslavss 2 жыл бұрын
Круть! Спасибо за урок!
@user-mx4fe7gs2u
@user-mx4fe7gs2u 4 жыл бұрын
Отлично! Просто и понятно!
@irik2339
@irik2339 Жыл бұрын
Быстро и понятно!
@fakeperson351
@fakeperson351 Жыл бұрын
Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого почаще?
@XpucT
@XpucT Жыл бұрын
@Kozeniuk
@Kozeniuk 5 жыл бұрын
Хачатур, просто заочное общение с Вами - подарок для нормального человека. А Ваш юмор просто образец уважительности. Особенно про продукты из холодильника.
@armm6437
@armm6437 Жыл бұрын
Класс! Спасибо!
@user-uv5qy3lq3i
@user-uv5qy3lq3i 4 жыл бұрын
Очень топово!!
@user-kt1jb5vo3e
@user-kt1jb5vo3e 4 жыл бұрын
очень доходчиво. . . спасибо . . . на будущее хотелось бы осветить десериализацию разных типов данных, в т.ч. Chart
@hello_world_zz
@hello_world_zz 3 жыл бұрын
Классно и нифига не скучно.
@deandomino8501
@deandomino8501 4 жыл бұрын
5:15 - И тебя отсюда уберем😂
@Fioletka_YT
@Fioletka_YT 4 жыл бұрын
Тупые делегаты!))) Спасибо за крутой урок!)
@Ivan-od5qc
@Ivan-od5qc 3 жыл бұрын
Ты очень весёлый, и на простом языке объясняешь, даже обезьяна поймёт)
@user-nv4yz5bt4g
@user-nv4yz5bt4g 4 жыл бұрын
Побольше бы роликов C# на форме , а то даже в литературе дают примеры на Консоли .
@user-lh6xe3zi1t
@user-lh6xe3zi1t 11 ай бұрын
Всё-таки теория лямбда выражения не раскрыта, вы просто привели примеры, когда она применяется. Но про суть лямбды не слова
@twidgerry
@twidgerry 2 жыл бұрын
Привет с 2021)
@SEOmaster_real
@SEOmaster_real 4 жыл бұрын
Лучшие уроки по C#. По ним за 3 дня сделал с нуля автозагрузчик файлов с сервера. Есть ли еще темы которы были не раскрыты в уроках?
@XpucT
@XpucT 4 жыл бұрын
Есть ещё много тем у Меня в заметках. Много фокусов припас. Но пока очень занят. Как вернусь, продолжим. Дальше больше будет фокусов и хитростей.
@romanbush5164
@romanbush5164 Жыл бұрын
один вопрос нахрена в linq придуманы лямда выражения, когда можно в левой стороне написать что угодно, а с права использовать это
@XpucT
@XpucT Жыл бұрын
Для собственного удобства. Слева мы придумываем на лету свою переменную и называем так, как нужно нам.
@pixel183
@pixel183 4 жыл бұрын
Сенькю теперь придется калькулятор переписывать
@stark1902
@stark1902 4 жыл бұрын
Хачатур, сделайте, пожалуйста, урок по созданию 3D графиков на C# типа как для 2D это делает Chart(читаем из файла список точек выбираем тип графика и рисуем). Ну Очень нужно! даж на кибер форуме морозятся, вся надежда на тебя. P.S. Если все же для этого нужна сторонняя dll то как раз повод и про NuGet рассказать(если раньше не было, еще не все видео посмотрел)
@XpucT
@XpucT 4 жыл бұрын
Про графики точно нужно будет сделать видео, потому что сам планирую его сделать. И нет, даже смотреть на dll не буду. Всё, как обычно, буду делать сам. Свой велосипед лучше работает. Проверено временем, доказано размером программы.
@stark1902
@stark1902 4 жыл бұрын
@@XpucT Про велосипед согласен, подписался, жду колокольчика с видео о графиках xD Спасибо, что так быстро ответил
@masdaiable
@masdaiable 2 ай бұрын
Какой переключалкой клавиатуры на английский пользуешься?
@XpucT
@XpucT 2 ай бұрын
Punto Switcher 👍
@great8814
@great8814 3 жыл бұрын
Здраствуйте! Хотел спросить.Вы визуал приложения делаете в Windows Forms или wpf? (например Win10Tweaker)
@XpucT
@XpucT 3 жыл бұрын
Доброй ночи. Windows Forms
@great8814
@great8814 3 жыл бұрын
@@XpucT Спасибо.
@MibusVideo
@MibusVideo 2 жыл бұрын
Спрошу тут. Не могу понять как перебрать контролы, которые привязаны к какой-нибудь панели? Например, на форме есть Panel1, на ней расположено ещё несколько панелек, а на них есть кнопки. Если я задаю foreach (Button button in Controls.OfType()) то он не видит эти кнопки в контролах, я так понимаю, потому что они внутри панелек? Вот как к ним получить доступ не зная заранее какая кнопка нужна будет?
@XpucT
@XpucT 2 жыл бұрын
kzfaq.info/get/bejne/qLV-mdh1zNfUeIk.html
@MibusVideo
@MibusVideo 2 жыл бұрын
@@XpucT спасибо. Почему-то этот момент не отложился в голове) Получается сколько вложенных панелек друг в друга, столько и вложенных foreach надо запустить, чтоб добраться до нужного уровня.
@marsm6619
@marsm6619 4 жыл бұрын
XpucT. Комп не любит числя с плавающей точкой, ну не его стихия это. Я с такой гадость и на JS встречал, делил 4/100 а в ответ 0,03999999999999999999999999, Если это число проверять на if( x != 4 ) { x+= 0.01; } else{ break; } срастется ? а так if( x < 4 ) { x+= 0.01; } else{ break; } допустим Opacity измеряем в метрах for ( Opacity = 0; // ноль и в африке 0 Opacity < 0.98; // 0.98 - это что ? км, м, мм, мкм i+= 0.011) // тут число ещё меньше может это световой год Лучше всего работать с натуральными , положительными числами и комп шустрее, и не тупит, а в конце приводить к нужным величинам ему , например 98 привести к 0,98 (98Е -2) не сложно нужно лишь вычесть 2. Opacity = 0; for (int i = 0; i < 980; i+= 11) { await Task.Delay(30); Opacity = ((float)i/1000); textBoxConsole.Text = ((float)i/1000).ToString(); }
@user-nv4yz5bt4g
@user-nv4yz5bt4g 4 жыл бұрын
У меня оператор Process.Start("noterad"); не открывается есть другие операторы например ProcessCmdKey . Почему ? Какое нужно открыть подпространство System ? Какой у вас Farvoxs ?
@XpucT
@XpucT 4 жыл бұрын
System.IO Это стандарт
@user-nv4yz5bt4g
@user-nv4yz5bt4g 4 жыл бұрын
Спасибо , а я думал , что это потоки . Там открывается Process.Start ? У вас на ролики закрыты подпространство . Выучил я C# , потом думаю зачем я сделал .
@user-le8nw5un6g
@user-le8nw5un6g 4 жыл бұрын
Использование класса Process и метода Start доступно в namespace под названием System.Diagnostics. Сначала тоже не запускалось - и я начал тупо все неймспейсы перебирать и нашел:) Если к примеру удалить System.Diagnostics, среда начинает "подчеркивать" Process красным, мол она его вообще не знает )) Ну и потом погуглил - и еще раз убедился.
@mishalavik4595
@mishalavik4595 4 жыл бұрын
@XpucT, как заменить/изменить содержимое ресурса в коде?
@XpucT
@XpucT 4 жыл бұрын
Как можно изменить то, что уже скомпилировано в одно целое с программой...
@mishalavik4595
@mishalavik4595 4 жыл бұрын
@@XpucT Звучит логично, а разве нельзя скомпилить приложение с отдельным файлом *.resx для ресурсов?
@XpucT
@XpucT 4 жыл бұрын
​@@mishalavik4595 технически можно, однако, проще тогда держать внутри zip, распаковывать его, менять что нужно, и работать дальше. Я просто без примера вопрос слышу буквально. А значит цель у Вас всё же не изменить что-то внутри, а изменить на лету в процессе работы. В общем, с примером было бы проще. Хотя ответ скорее всего такой же и будет =)> zip.
@mishalavik4595
@mishalavik4595 4 жыл бұрын
@@XpucT Раз вы мнн ответили, скажите, когда новые видео?
@user-lc9wd8xu2r
@user-lc9wd8xu2r 2 жыл бұрын
Для чего лямбда нужна? Да делегат его знает...!
@user-nv4yz5bt4g
@user-nv4yz5bt4g 4 жыл бұрын
У вас есть что-нибудь про оператор Console.Beep(x,y); ? Я хочу научится генерировать звук по заданным параметрам . Может есть способ запустить в паралельном потоке два таких оператора но с разной частотой - будет сложный звук . Пока я создал только Клависин на KeyPress все клавиши имеют разую частоту .
@XpucT
@XpucT 4 жыл бұрын
На cyberforum кто-то выкладывал в точности озвученную Вами идею.
@user-nv4yz5bt4g
@user-nv4yz5bt4g 4 жыл бұрын
У вас ссылка есть на этот cyberforum ?
@user-nv4yz5bt4g
@user-nv4yz5bt4g 4 жыл бұрын
Я уже написал программу по этой идеи и назвал ее Клависин . Можно наиграть простые мелодии причем каждая клавиша имеет свою ноту длину звука тоже можно настроить .
@user-nv4yz5bt4g
@user-nv4yz5bt4g 4 жыл бұрын
Нет . Я не знаю что это такое . Я просто от нечего делать пишу программки .
@agens9538
@agens9538 3 жыл бұрын
как сделать лямда выражение на клик кнопки из другой формы (форма2), которые мы активируем из формы1
@XpucT
@XpucT 3 жыл бұрын
На эту тему будет отдельное видео. Не всё так просто из класса из формы...
@pixel183
@pixel183 4 жыл бұрын
привет а можете подсказать пишу лямбду KeyPress += (a, v) => { label1.Text += v.KeyChar.ToString(); }; все работает пока на форму не бросишь кнопку как можно это исправить?
@XpucT
@XpucT 4 жыл бұрын
Привет 🖐 Когда кнопка одна и она в фокусе, то именно она и нажимается. Внимательнее ;) У кнопок можно убрать TabStop. Посмотри внимательно свойства Button. Также label сфокусироваться самому на любой контрол. Google: get label focus c#
@Radikaloff
@Radikaloff 4 жыл бұрын
Ваще нихера не понимаю, уроки про до диез какие-то)) Но интересно блин!)
@user-gy2jp9fd5e
@user-gy2jp9fd5e 2 жыл бұрын
Добрый вечер, ребят! Подскажите пожалуйста, каким образом можно в коде временно отключить или же удалить событие, созданное через лямбда выражение?
@XpucT
@XpucT 2 жыл бұрын
Добрый 🖐 Создать bool и перед выполнением кода проверять этот bool. А из любого другого места менять этот самый bool.
@user-gy2jp9fd5e
@user-gy2jp9fd5e 2 жыл бұрын
@@XpucT Спасибо!
@glorglorsky7987
@glorglorsky7987 4 жыл бұрын
MouseEnter и MouseHover работают одинаково, чем они тогда отличаются) и там и там при наведении мыши стартует блокнот)
@XpucT
@XpucT 4 жыл бұрын
MouseEnter - мышь влезла на контрол (как только, так сразу) MouseHover - мышь влезла на контрол и остановилась (в области контрола) MouseMove - мышь двигается в зоне контрола (постоянное движение на контроле)
@user-pu2xj7tj8i
@user-pu2xj7tj8i 3 жыл бұрын
Нихуя не понял, но очень интересно
@unx238
@unx238 5 жыл бұрын
Хачатур если не сложно в одном из следующих роликов выбери проект и разбери его вот ссылка(programming-csharp.ru/) просто пытался сам а там ничего не понятно ((
@mlstrbrv
@mlstrbrv 3 жыл бұрын
Хачатур, извини что так часто спрашиваю, но все же. После просмотра видео решил использовать лямбду в своем проекте и у меня возник вопрос. Вот кусочек кода: Point p1 = new Point(50,100); int count = System.IO.File.ReadAllLines(teoriafile+".txt").Length; // teoriafile - файл который считываю count = count / 2; if(count == 0) { } else { int n = File.ReadAllLines(teoriafile+".txt").Length; string [] str; Button[] buttons = new Button[count]; using (StreamReader read = new StreamReader(teoriafile+".txt",Encoding.UTF8)) { str = read.ReadToEnd().Split(new char[] { ' '}); for(int i =0;i { MessageBox.Show(str[i*2+1]); }; // а здесь появляется teoriapanel.Controls.Add(buttons[i]); p1.Y += 175; } } } Тут я читаю файл из Debug где по порядку записано тот текст который я выношу в текст кнопки и файл который по нажатию кнопки должен открываться файл который указан следующим, выглядит файл вот так: Название кнопки файл который открывается Название кнопки 1 файл который открывается 1 и т.д Я создаю в цикле кнопки на форму, задаю им все свойства и когда задаю текст, у программы по поводу индекса i*2 вопросов не возникает, а когда я вывожу строку файла в Message box (его написал для примера , потом буду в браузере файл открывать) выдает ошибку что индекс массива мешел за границы. Добрались до вопроса: Почему в одной строке кода с индексом ошибок нет, а в следующей появляется ошибка? Может это как то связано с особенностями использования лямбды? За ответ буду благодарен, если же нет времени разбираться, то где можно спросить? На форуме не сильно хотят помогать
@XpucT
@XpucT 3 жыл бұрын
Привет 🖐 С лямбдой были у Меня проблемы как-то, когда нужно было свойство Enabled менять. Свойство менялось, но при этом кнопка была кликабельной. Решил проблему вот так: buttons[i].Click += Method; ниже в коде: void Method(object sender, EventArgs e) { MessageBox.Show(str[i * 2 + 1]); }
@XpucT
@XpucT 3 жыл бұрын
По поводу отзывчивости на сайте и вообще. Кусочек кода должен быть воспроизводим. То есть без лишних Font и прочих пропертей. Поэтому, чтобы кому-то не было лень копаться в этом во всём, ему нужно минимум информации. А так по кусочку Я уже вижу, что файла у Меня teoriafile нет и Я должен дальше по коду догадываться, что в нём. Тут даже у заказчика никто не будет платно выпрашивать дополнительную инфу. Поэтому всё должно быть озвучено как ТЗ. Максимально ёмко. Часто в таких случаях рекомендую делать вот как, перед вопросом: string file = "C:\\1.txt" // Содержимое 1.txt // 1 // 2 // 3 Далее for.... Короче не полениться и вынуть не просто нерабочий код, а его упрощённую версию.
@mlstrbrv
@mlstrbrv 3 жыл бұрын
@@XpucT Спасибо за ответ! Но вот только все равно таже ошибка. Создал тему на форуме , можешь посмотреть там?. Вставил код как ты сказал, чтоб у всех работал. win10tweaker.pro/forum/topic/ошибка-при-чтении-файла-нужна-помощь#postid-14205
@XpucT
@XpucT 3 жыл бұрын
@@mlstrbrv во, сразу отзывчивые нашлись =))
@UFO26
@UFO26 Жыл бұрын
В чём разница между form1.Controls.Add(Label1); и Label1.Parent = form1;
@XpucT
@XpucT Жыл бұрын
В первом случае добавляется контрол, во втором свойству Parent присваивается значение form1
@lustfulglance437
@lustfulglance437 3 жыл бұрын
Зачем в песочнице снимать, а не в полный экран
@XpucT
@XpucT 3 жыл бұрын
Ответ в Уроке 1
@learn9491
@learn9491 3 жыл бұрын
чтобы ничего не видно было
@june3878
@june3878 4 жыл бұрын
дядь, ну методы же должны называться глаголами) прост докопался, забей)
@f0cus570
@f0cus570 4 жыл бұрын
Как перетащить строку кода в скобки ? 6:41
@XpucT
@XpucT 4 жыл бұрын
Alt + ↑
@f0cus570
@f0cus570 4 жыл бұрын
@@XpucT Супер, спасибо
@XpucT
@XpucT 4 жыл бұрын
не пропускай занятия ;)
@arteria-circumflexa6527
@arteria-circumflexa6527 4 жыл бұрын
Не мог долго понять, какие параметры, что за (s, a), а это, оказывается, "sender" и "e". Почитал про "e", дошло, а про "sender" написано, что это объект, который вызвал событие. Что это значит? Какой объект? Событие вызвал?.....................
@XpucT
@XpucT 4 жыл бұрын
Привожу пример: foreach (Button button in Controls.OfType()) { button.Click += (s, a) => { ̶b̶u̶t̶t̶o̶n̶.̶B̶a̶c̶k̶C̶o̶l̶o̶r̶ ̶=̶ ̶C̶o̶l̶o̶r̶.̶B̶l̶a̶c̶k̶;̶ ((Button)s).BackColor = Color.Black; }; } Для каждой кнопки на panel1, создать событие клика, которое сделает так, что после того, как кнопку нажмут, она станет чёрной. Обрати внимание, где встречается та самая s и какую роль она играет. Если бы мы сделали количество кнопок равное пока ещё неизвестному числу и сделали бы так: button.BackColor = Color.Black, то это бы сделало каждую кнопку чёрной. А нам нужно, чтобы тот, кого нажали стал чёрным. В данном случае ((Button)s) - это sender - тот, кто вызывал событие. То есть s (sender) - это кнопка, которая вызвала событие. Не просто какая-то кнопка откуда-то, а именно та, которая запустила событие. Ещё немного по-другому: button.Click => (s, a) Казалось бы тут мы просто говорим, чтобы создать на лету событие, чтобы каждая кнопка что-то там делала. Но зачёркнутый текст вверху не просто так. Бывают случаи, когда Ты не знаешь, кто создал событие. Это довольно сложно привести в пример. Хороший пример - это то, как Я сделал систему Автозагрузки в Win 10 Tweaker. Я не знаю, сколько объектов у человека и создаю переменную для количества. Потом программа, зная это, создаёт кнопки на лету. И каждая имеет свойство. Но как сделать так, чтобы нажимая на кнопку, которой не было, Ты не задел другие кнопки в цикле? Вот тут и приходит на помощь sender (сокращённо s или любая другая буква, как нравится). Грубо говоря - тот, кто вызвал событие, тот и будет то-то и сё-то. В уроках пока ещё не было примера, где это играет роль. Но запиши куда-нибудь форуму типа ((Label)sender).Text = "Слово";
@arteria-circumflexa6527
@arteria-circumflexa6527 4 жыл бұрын
@@XpucT прочитал пару раз, и, дошло. Спасибо большое за пояснение! Ждём новые видео.)
@roman044
@roman044 3 жыл бұрын
private void Form1_Load(object sender, EventArgs e) { label1.Click += (s, f) => { Process.Start("notepad"); }; } что значит += и почему без плюса и , если даже скопировать и написать label1.Click=label1.Click+(s,f).... не работает ?
@XpucT
@XpucT 3 жыл бұрын
+= означает то, что мы подписываемся на событие, которое прописываем справа. То есть label1.Click = самому себе (своему же событию) + то, что ещё допишем. Пример с label1.Click=label1.Click+(s,f) не корректный, почему ➜ написано красным в самой студии ;)
@roman044
@roman044 3 жыл бұрын
@@XpucT понял , я просто думал , что это работает по аналогии с простыми +=
@user-zf7le3yd3d
@user-zf7le3yd3d 4 жыл бұрын
++++
@Tumanop
@Tumanop 2 жыл бұрын
урок хороший но стиль речи афтора как будто он под шафе
@user-bd3ij4op5k
@user-bd3ij4op5k 3 жыл бұрын
Сумбурно,местами непонятно....на тройку объяснение
@mrSmith-lc7hk
@mrSmith-lc7hk 3 жыл бұрын
Лучше просто работай программистом. Не снимай больше это, не позорься
C# programming. Lesson 12. Lambda expressions
26:22
Программирование - это просто
Рет қаралды 55 М.
Watermelon Cat?! 🙀 #cat #cute #kitten
00:56
Stocat
Рет қаралды 54 МЛН
ИРИНА КАЙРАТОВНА - АЙДАХАР (БЕКА) [MV]
02:51
ГОСТ ENTERTAINMENT
Рет қаралды 4,3 МЛН
Делегаты и события на практике
9:20
ExtremeCode
Рет қаралды 150 М.
Что должен знать C# Junior разработчик?
9:33
Sergey Nemchinskiy
Рет қаралды 93 М.
ПРОБНОЕ СОБЕСЕДОВАНИЕ C# Junior программиста
1:00:54
Парадокс двух конвертов // Vital Math
13:06
Vital Math
Рет қаралды 288 М.
Вопросы собеседования на C# программиста
21:04
Програмысли Влог
Рет қаралды 62 М.
SSD с кулером и скоростью 1 ГБ/с
0:47
Rozetked
Рет қаралды 52 М.
Samsung S24 Ultra professional shooting kit #shorts
0:12
Photographer Army
Рет қаралды 31 МЛН
Hisense Official Flagship Store Hisense is the champion What is going on?
0:11
Special Effects Funny 44
Рет қаралды 1,8 МЛН
APPLE совершила РЕВОЛЮЦИЮ!
0:39
ÉЖИ АКСЁНОВ
Рет қаралды 3,9 МЛН