C#- Delegates vs Events
Delegates and events are closely related concepts in C# and .NET, and they are often used together to implement the Observer design pattern. Here are the key differences between delegates and events, along with their common usage:
They allow you to select and transform data from the source collection or query into a new form. Here are some common projection operators
A delegate is a type that represents references to methods with a specific signature. It acts as a function pointer, allowing you to encapsulate a method and pass it around in your code.
Usage:
Delegates are used to define and work with method signatures.
They are commonly used in scenarios where a callback mechanism is needed, such as in event handling or asynchronous programming.
public delegate void MyDelegate(string message);
public class MyClass
{
public void MyMethod(string message)
{
Console.WriteLine(message);
}
}
// Usage
MyDelegate myDelegate = new MyDelegate(new MyClass().MyMethod);
myDelegate("Hello, Delegate!");
public class MyEventPublisher
{
public event MyDelegate MyEvent;
public void RaiseEvent(string message)
{
MyEvent?.Invoke(message);
}
}
// Usage
var publisher = new MyEventPublisher();
publisher.MyEvent += (msg) => Console.WriteLine($"Event Handler: {msg}");
publisher.RaiseEvent("Hello, Event!");
Key Points
- 🔸Delegate is a pointer to a fucntion and its is used for callback.A Delegate is a variable that holds the reference to a method or pointer to a method.
- 🔸Event is a notification mechanism that depends on delegates. 🔸Event is like a wrapper over delegates to improves its security.
- Events are encapsulation over delegates and its helps in publisher/subscriber model. functions=> Delegates => Events
Comments
Post a Comment