Events — publish/subscribe pattern.
Basic:
1public class OrderService2{3 public event EventHandler<OrderEventArgs> OrderCreated;45 public void CreateOrder(Order order)6 {7 // Create order...8 OrderCreated?.Invoke(this, new OrderEventArgs(order));9 }10}
Subscription:
1var service = new OrderService();2service.OrderCreated += OnOrderCreated;34void OnOrderCreated(object sender, OrderEventArgs e)5{6 Console.WriteLine($"Order {e.Order.Id} created");7}
Key: Events for decoupled communication.