public static void Main()
MyMain main = new MyMain();
main.MyEvent += (sender, e) => Console.WriteLine("raised");
main.external.RaiseExternally();
public delegate void MyEventHandler(object Sender, EventArgs Args);
public event MyEventHandler MyEvent;
public MyExternal external;
public void RaiseInternally()
MyEvent?.Invoke(this, null);
external = new MyExternal(MyEvent);
private MyEventHandler MyEvent;
public MyExternal(MyEventHandler MyEvent)
public void RaiseExternally()
MyEvent?.Invoke(this, null);