Does anyone know what I am doing wrong why delegate is not working in my code?
I have console application which is showing a form at the beginning and use delegate to update the label in the form.

```
namespace DELEGATESAMPLEPROJECT
{
    public class Program
{
    public delegate void OnConfirmCall();
    public OnConfirmCall confirmCall;

    [STAThread]
    static void Main(string[] args)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1(new Program().getReference()));

        new Program().startFunctionCall();
    }

    public Program getReference(){
        return this;
    }

    public void startFunctionCall(){
        Console.WriteLine("Function Call Started!");
        if(confirmCall != null){
            Console.WriteLine("Function Call Executing...");
            confirmCall();
        }
    }
}
}

```

**FORM1**

```
namespace DELEGATESAMPLEPROJECT
{
    public partial class Form1 : Form
    {
        public Form1(Program thisProgramClass)
        {
            InitializeComponent();
            thisProgramClass.confirmCall += saySomething;
        }

        public void saySomething()
        {
            Label1.Text = "Hello World!";
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Label1.Text = "Hi C#!";
        }
    }
}

```

as you can see I am trying to change `"Hi C#!"` into `"Hello World!"` but its not working, What I am missing?