Create and implement events and callbacks

You have declared an event on your class, and you want outside users of your class to raise this event. What do you do?

Make the event public.
Use a custom event accessor to give access to outside users.
Add a public method to your class that raises the event.
Use a public delegate instead of an event.