Saturday, December 05, 2020 05:24

Archive for February, 2020

EventHandler, sender and EventArgs

Friday, February 21st, 2020

You noticed that throughout pretty much all the previous lessons where I discussed events, I have been using Action as the delegate type for the event. Obviously, you can use whatever delegate type you’d like, but in the vast majority of the cases, by convention (and only by convention!)… Read more

Events Add and Remove

Wednesday, February 19th, 2020

In the previous lesson I showed you how the compiler actually implements events by actually adding two methods named addon() and removeon() in the background and making the Action field private, so we can’t invoke it. But that was done in MSIL language, and we really don’t need to deal with such a low level.… Read more

Events

Wednesday, February 5th, 2020

Events are a more secure way of implementing the observer pattern described in the previous lesson, and they are the evolutionary step of raw delegates. You may have heard about the event-driven programming as a concept that describes a programming paradigm in which the flow of the program is determined by events such as user actions (mouse clicks, key presses), sensor outputs, or messages from other programs or threads.… Read more

Observer Pattern

Monday, February 3rd, 2020

According to Microsoft, observer pattern is a behavioral design that allows one object to notify other objects about changes in its state.

Many beginner programmers (and even more experienced ones) have a hard time understanding the link between delegates and events, and the core upon which this link is built is represented precisely by the observer pattern.… Read more

Closures

Sunday, February 2nd, 2020

Let’s consider the following Action:

Read more

Anonymous methods

Saturday, February 1st, 2020

Remember from the lesson lambda expressions that we can declare a method locally, without a name, and use it only in one place, where we declare it. This is an example of a lambda expression:

Read more

Do NOT follow this link or you will be banned from the site!