Is there anything in c# that you can use to create a collection of events like lists, hashsets, and a dictionary in this case? Thankyou.
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Sure you can:
In Jeff Richter’s Book CLR via C# you can find a complete implementation of an EventSet class.
(Even if you don’t have the book you can download the sample code from https://www.wintellect.com/wp-content/uploads/2017/09/CLR-via-C-4th-Edition-Code.zip. The class in question is in “Ch11-1-EventSet.cs”.)
As far as the question goes what an event is:
Say you have this line of code in your class:
then the C# compiler will translate the line above into three constructs:
A private delegate field. (Something like:
private EventHandler<NewMailEventArgs> NewMail;A public add_Xxx method (where Xxx is the Event name) that interested subscribers can use to register a callback delegate with the event.
A public remove_Xxx method (where Xxx is the Event name) that subscribers can use to unregister from the event.
(All the gory details can be found in section 11.2 of aforementioned book.)
So in other words the ‘thing’ you can store in your Event collection class is just a plain old delegate nothing else.