/// <summary> /// Application main method /// </summary> /// <param name="args"></param> public static void Main(string[] args) { Console.WriteLine("*** Delegates example ***"); InitCartWithDemoData(); // Use Delegate method // Use Func method // Use Action method Console.WriteLine($"The total for the cart is: {_cart.GenerateTotal(SubTotalAlert, CalculateLeveledDiscount, AlertUser):C2}"); Console.WriteLine(); Console.WriteLine("=== Use anonymous methods ==="); // Use anonymous Delegate // Use anonymous Func // Use anonymous Action decimal total = _cart.GenerateTotal( (subTotal) => Console.WriteLine($"The subtotal for cart 2 is: {subTotal:C2}"), (products, subTotal) => { if (products.Count > 3) { return(subTotal * 0.5M); } return(subTotal); }, (message) => Console.WriteLine($"Cart 2 alert: {message}") ); Console.WriteLine($"The total for cart 2 is: {total:C2}"); Console.ReadKey(); }
/// <summary> /// Message button click command /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void messageButton_Click(object sender, EventArgs e) { decimal total = _cart.GenerateTotal(ShowSubTotalAlert, CalculateLeveledDiscount, ShowDiscountAlert); MessageBox.Show($"The total is {total:C2}"); }