// This will be the starting point of our event-- it will create FireEventArgs,
        // and then raise the event, passing FireEventArgs.
        public void ActivateFireAlarm(string room, int ferocity)
        {
            FireEventArgs fireArgs = new FireEventArgs(room, ferocity);

            // Now, raise the event by invoking the delegate. Pass in
            // the object that initated the event (this) as well as FireEventArgs.
            // The call must match the signature of FireEventHandler.
            // Dit kan fout gaan: FireEvent(this, fireArgs);
            // veiliger: gebruik ?.
            FireEvent?.Invoke(this, fireArgs);
        }
        // This is the function to be executed when a fire event is raised.

        void ExtinguishFire(object sender, FireEventArgs fe)
        {
            Console.WriteLine("\nThe ExtinguishFire function was called by {0}.", sender.ToString());

            // Now, act in response to the event.

            if (fe.Ferocity < 2)
            {
                Console.WriteLine("This fire in the {0} is no problem.  I'm going to pour some water on it.", fe.Room);
            }
            else if (fe.Ferocity < 5)
            {
                Console.WriteLine("I'm using FireExtinguisher to put out the fire in the {0}.", fe.Room);
            }
            else
            {
                Console.WriteLine("The fire in the {0} is out of control.  I'm calling the fire department!", fe.Room);
            }
        }