public void Service(Car car) { //Some services need to be done explicitly and in order choosen by the garage Console.WriteLine("servicing tire pressure.."); Console.WriteLine("servicing oil.."); //Some services can be done 'indirectly or forwarded to external parties' but still in order choosen by the garage //Performing Extra Service, but which? The garage does not need to control that //if (ExtraService != null) //{ // ExtraService(car); //} //Line below ias same as if-statement above, just a null check ExtraService?.Invoke(car); Console.WriteLine("cleaning interior"); //A window servicing company could actually travel in real life to the garage and perform services on site WindowService?.Invoke(car); //As an ending service: the car needs to be washed Console.WriteLine("washing car"); }