public int Calculate(CalculationPerformedHandler del, int num1, int num2)
 {
     if (del != null)
     {
         return(del(num1, num2));
     }
     else
     {
         throw new ApplicationException();
     }
 }
        public void RunDelegateExample()
        {
            var addDel      = new CalculationPerformedHandler(Add);
            var subtractDel = new CalculationPerformedHandler(Subtract);
            var multiplyDel = new CalculationPerformedHandler(Multiply);
            var divideDel   = new CalculationPerformedHandler(Divide);

            Console.WriteLine($"Add {addDel?.Invoke(2, 2)}");
            Console.WriteLine($"Substract {subtractDel?.Invoke(2, 2)}");
            Console.WriteLine($"Multiply {multiplyDel?.Invoke(2, 2)}");
            Console.WriteLine($"Divide {divideDel?.Invoke(2, 2)}");

            Console.WriteLine($"Calculate Add {Calculate(addDel, 2, 2)}");
        }