namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter20.Listing20_07
{
    delegate void TemperatureChangedHandler(Program one, TemperatureEventArgs two);

    class Program
    {
        private static TemperatureChangedHandler OnTemperatureChanged;

        public void Main()
        {
            // Ten kod nie jest bezpieczny ze względu na wątki.
            if (OnTemperatureChanged != null)
            {
                // Wywołanie kierowane do subskrybentów.
                OnTemperatureChanged(
                    this, new TemperatureEventArgs(value));
            }
        }

        public object value { get; set; }
    }

    class TemperatureEventArgs
    {
        public TemperatureEventArgs(object value)
        {
            // ...
        }
    }
}
