void Main()
{
CustomWorker worker =new CustomWorker();
worker.DoWork();
}
// You can define other methods, fields, classes and namespaces here
//public delegate void EventHandler(object? sender, EventArgs e);
public abstract class Worker
{
public abstract event EventHandler WorkStarted;
public abstract void DoWork();
}
public class CustomWorker : Worker
{
public override event EventHandler WorkStarted = DoMyWork.EventMethod;
public override void DoWork()
{
Console.WriteLine("Custom work in progress...");
WorkStarted?.Invoke(this, EventArgs.Empty);
}
}
public static class DoMyWork
{
public static void EventMethod(object sender,EventArgs args)
{
if (sender != null)
{
Console.WriteLine($"{(sender is CustomWorker).ToString()}");
Console.WriteLine($"sender is = {sender.GetType().ToString()}");
}
}
}