public static void Main()
var mainClass = new MainClass();
ObjectA obj = new ObjectA();
obj.ValueReturnEvent += HandleValueReturnEvent;
public int GetMainClassMode()
private int HandleValueReturnEvent(object sender, EventArgs e)
Console.WriteLine("Calling test method inside obj");
public delegate int ReturnValueEventHandler(object sender, EventArgs args);
public event ReturnValueEventHandler ValueReturnEvent;
if (ValueReturnEvent != null)
var myValue = ValueReturnEvent(this, null);
Console.WriteLine("Getting mode from 'parent' MainClass");
Console.WriteLine(string.Format("Mode = {0}", myValue));