C# Delegates & Lambdas Explained
HTML-код
- Опубликовано: 22 май 2024
- Function as a value is one of the core functional programming paradigms. In c# it's called a "delegate", today we learn - why delegates are useful, delegate syntax, how delegates work internally and what are closures.
Patreon 🤝 / raw_coding
Courses 📚 learning.raw-coding.dev
Shop 🛒 shop.raw-coding.dev
Discord 💬 / discord
Twitter 📣 / anton_t0shik
Twitch 🎥 / raw_coding
👉 Try Rider
www.jetbrains.com/store/redeem/
RD5K9-4TXXW-KMV3G-NYWSF-3ZSTP
linqpad: www.linqpad.net/
Source Code (With Benchmarks): github.com/T0shik/raw-coding-...
#csharp #delegates
This channel deserves more subs. Such a nice and underrated guy he is!
Thanks, we’ll get there
Man - you make things so clear with one single sentence - "delegates is kind interface of function".
Awesome, I search for it literally a years! Now it so simple!
Glad I could help)
I want to master c# and i did strugle with delegates, but you made it so simple, many thanks dude
I learned a great deal from this. You're providing a great service with this channel. Many thanks!
Cheers
This helped me wrap my head around delegates, thanks a lot!
glad I could help!
Your content is amazing... And there is so much! Thank you a lot, it really helped me understand better what are delegates.
Glad to hear
Thanks for this. I really appreciate your teaching method. I am an advanced beginner trying to get to the next level. I found your video to be super clear and to have just the right amount of background detail to fill in the gaps in my understanding of basics.
Nice 👍
Спасибо большое, наконец-то понял делегаты. Очень хорошие объяснение сравнивая как было и как код стал лучше с делегатами. Иногда смотрю твои стримы тоже, очень познавательно. Спасибо за твое творчество.
Спасибо, рад что мог помочь)
Thanks, this video help me understand better about delegate
Super technical explanation..thanks for sharing
Thank you for watching
Very clear, Thanks~!
It really helps to understand the delegates in better way.. Thanks for that.
Need Lamda tutorial in advanced manner like this .... :)
Cheers and I mean we kinda dissected the lambda as well
@@RawCoding Why cann't u get deeper into firebase and its tech with angular ?
I hope it doesn’t come as a surprise, but just because I do tutorials on tech that I know, that doesn’t mean I know everything. I don’t use angular and I don’t understand why other do, vuejs is so much better. As for firebase, I know a little bit so you can expect some content about it.
it is the best delegate video ever!
Cheers
Mate I watched many videos this week and this is flawless ! Thank you
Thank you)
Understand delegates, generic delegates, anonymous functions, lambdas and a general sense of the complexity hidden in IL. However the last 3 minutes on what is a closure wasn't clear for me.. Thanks for your content.
Closure is a variable in the lambda which comes from the outside, if you mark a lambda to be static closure won’t be allowed .
Wow this is very good job, first video about delegates when someone finally describes it in a easy but accurate way. Keep doing that :D
Thank you, glad you like it )
Delegates put right! This tutorial would have been the answer if i had asked delegates what they really are.
Glad I could help 👍
thank you
Hey thanks man . Probably one of best tutorials to understand delegate - especially the behind the screen - nuts and bolts. Quick question though:
Lets say I have a second method Main() which is overloaded, then I get a run-time error as the Delegate is not able to resolve which lambda function to target. How do you fix this? I tried using the parameters of GetMethod() but no avail . Please help !!
This is a great content and you represented it very well! If I may ask for your opinion, what would be the most wanted skills for a .NET full stack postion? Cheers!
- attitude to learn - if they don't know .net or any other tech that's part of the "full stack" they can just learn it. This can be shown by trying a lot of different things, or personal projects, some kinds of participation in the community.
- problem solving skills - this knowledge is transferable between all parts of life and abstract enough to mean if you are good at problem solving in 1 area, you are most likely going to be as good in another once you learn the basics. This is quite hard to gauge in people, but is generally a skill that you learn throughout life; computer companies sometimes just hire Maths and Physics graduates because the problems they solve are a lot harder than the ones we programmers face.
Thanks a lot!
Out of all the video in youtube about interface and delegates. I mangaged to differentiate and undestand clearly from this video. Should include interface in the video name. Thank you.
Hi there, great video. I have a question for you. I've been trying to find examples an actual practical use delegate combination (outside of subscribing to an event) but I haven't been able to which makes me think it is just an inherited/extra feature of how the language designers wanted the event subscription syntax to be (+= and -=). I don't think I've ever seen an example in real-life code where a delegate is passed around as an argument and other delegates are added to it. I can sort of imagine it happening in some builder-pattern, maybe, but that is still a long shot, the delegate only allows you to add/remove from the delegate queue and invoke it.
Do you have any examples where delegate combination / multicast delegates (outside of events) would be a useful, readable, desirable way to write code? To me, the fact that a delegate can be turned into a multicast delegate at any point, is kind of scary, I've always treated them as just a 'function pointer' and not a 'container with possibly multiple function pointers'.
it's used for the Observable pattern, other than that nobody really uses it for anything else. also I prefer to just have the IObservable interface
Only 60 Percent Gratitude This Time ...+5 for Keepin interest ... :) ...I will try again :)
Cheers
Suggestion for the next video explanation - expression, expression tree and other related staff. Interesting to know your self specific explanation :)
I’ve already covered this topic, check the playlist
@@RawCoding I missed it! Thanks))
How do you enable to auto-generate of the interface implementation. Also to change the color coding of the interfaces/classes to be blue (mine is white)? Also I'm not getting the references appear for my classes/methods?
Payed version
Thx
Np
delegates, interfaces, abstract classes, polymorphism.. oh my!
It’s an illusion
Great course specially when digging into real code generated thanks a lot.
Could you please provide real world example not several video series, I always understand the concept but when coding I don't know where to apply specially in delegates and threading.
Func Factory
You can have a parameter like that which will create a fresh instance of an object each time it needs it, and you can supply different creation processes.
Delegates is a great thing, but not all tasks require to use it. There are plenty of topics where you could solve your thing with interfaces.
Any way for real examples - google for observer pattern in C#.
Also i found this wery useful with view-controller concept where you inject function of controller inside view. For example one class describe form with a button - viewer, another class contains function which should be invoke when user click.
And you could use same form with many controllers, or you could replace controller, or test controller without interface, cause both are indepent - google for dependency injection.
Hi, it is great tutorial. Would like to request have a tutorial regarding UI Thread, Window Form Control Method Invoke and etc.
You’re welcome and no ty
Just to be technical about it the return type isn't part of the method's signature,
but besides this really good video.
It is not! Thank you
what setting do you use that transforms the => to an arrow (symbol)? do they call it fira code?
They are called ligatures and are usually built in to the font you use, I use JetBrains Mono
@@RawCoding aha, thanks. I will figure it out.
this is fucking amazing
No you are!
is the F12 option available only for the paid premium version?
Think so,it’s called IL spy and you can get it on visual studio
@@RawCoding I did open ILSpy it with alt+shift+r. Thanks for support and all the hard work
How do you get this good? How do you practise to sharpen your skills
Google read write review repeat
@@RawCoding I will have to stamp that on my wall
umm.. I don't think the return type is actually considered as a part of the method signature? I could be wrong lol..
It is for the purpose of comparing delegates.
in this example how can i use += ? how can i add more methold with +=?
Yea, haven’t really covered it in the video. That’s essentially function composition and you just have to keep matching the signature of the function. You can also call the Combine method on the delegate
👍🏽
)
The concept is very easy.
Not for everyone
Not 4 me. I'm dumb af lul.
Not 4 me either :)
Delegate is a container that a function(lamda) goes into => Awesome();
Awesome indeed )
you are red hot chili pepres in word of coding channels
If you're saying "marginally" at around 11:40, you have the wrong definition for "marginal". To soften the blow, I'll point out that these first-class function doohickeys are finally starting to click for me. Thanks! Subscribed immediately.
Aha yes, the word should be drastically cheers :D
can you make a video on error handling in C#? Thanks.
What’s your concern with error handling?
@@RawCoding how to elegantly throw and handle exceptions in a way that avoids them being raised everywhere making code harder to read and trace through. Thanks.
Avoid exceptions
@@RawCoding I’ve heard this a few times. Could u send me a link to anything that would steer me in the right direction I’d very much appreciate it!
Just don’t throw exceptions. Handle unexpected ones in business critical paths
class Program
{
public delegate void DelegateFunc();
public static void Main()
{
List Funcs = new List() { () => { Console.WriteLine("f0"); }, f1, f2 };
foreach(DelegateFunc Func in Funcs)
{
Func();
}
}
public static void f1()
{
Console.WriteLine("f1");
}
public static void f2()
{
Console.WriteLine("f2");
}
}
Delegates are basically stored procedures for c# 😅
Ohhh man don’t know about that one, that’s a bold statement
20:10
Beach... haha. 😅 pandemic side-effects.
I miss it 😿
wtfunc
Exactly
u are very confusing
Eyyy Stewie how you doing