private void button1_Click(object sender, EventArgs e) { // event handler code }
public class CustomEventArgs : EventArgs { public string Message { get; set; } public int Number { get; set; } } public class SomeClass { public delegate void CustomEventHandler(object sender, CustomEventArgs e); public event CustomEventHandler CustomEvent; public void DoSomething() { CustomEventArgs args = new CustomEventArgs(); args.Message = "Hello"; args.Number = 42; OnCustomEvent(args); } protected virtual void OnCustomEvent(CustomEventArgs e) { CustomEvent?.Invoke(this, e); } } // subscribe to the event SomeClass obj = new SomeClass(); obj.CustomEvent += CustomEventHandlerMethod; private void CustomEventHandlerMethod(object sender, CustomEventArgs e) { Console.WriteLine(e.Message); Console.WriteLine(e.Number); }In this example, a custom event data class is created by deriving from EventArgs. The class contains two properties - Message and Number. An event is defined in the SomeClass class that uses the custom event data class. The object of SomeClass is created and an event subscriber method is defined that receives the event data when the custom event is fired. The OnCustomEvent method is used to raise the event and pass the event data.