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.

0 Comment's

Comment Form