- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Difference Between Delegates and Events in C#
In this post, we will understand the difference between delegates and events in C#.
Delegate
It can be declared using the ‘delegate’ keyword.
It is a function pointer.
It holds the reference to one or more methods during runtime.
It is an independent keyword.
It doesn’t depend on events.
It contains the Combine() and Remove() methods that help add methods to the list of invocation.
It can be passed as a parameter to a method.
The ‘=’ operator can be used to assign a single method.
The ‘+=’ operator can be used to assign multiple methods to a delegate.
Event
It can be declared using the ‘event’ keyword.
It can be defined as the notification mechanism that depends on delegates.
It depends on the delegate.
It can’t be created without delegates.
It can be understood as a wrapper around delegate instance.
This helps prevent users of the delegate from resetting the delegate and its list of invocation.
It allows to add or remove targets from list of invocation only.
The ‘EventInfo’ class inspects events and helps bind the event handlers.
These handles include methods such as AddEventHandler() and RemoveEventHandler(), that help add and remove methods to list of invocation respectively.
An event can be raised, but can’t be passed as a parameter to a method.
The ‘=’ operator can’t be used with events.
The ‘+=’ and ‘-=’ operators can be used with event that adds or remove event handlers respectively.
These methods would internally call methods like AddEventHandler and RemoveEventHandler.