Fire event in property setter : event « GUI Windows Forms « C# / CSharp Tutorial






using System;

public class SalaryEvent : EventArgs
{
  public string Message;

  public SalaryEvent(string message)
  {
    this.Message = message;
  }
}

public class Employee
{
  private int salary;

  public delegate void SalaryTaxEventHandler( object reactor, SalaryEvent myEvent );

  public event SalaryTaxEventHandler OnTax;

  public int Salary
  {
    set
    {
      salary = value;

      if (salary > 1000)
      {
        SalaryEvent myEvent = new SalaryEvent("Employee meltdown in progress!");
        OnTax(this, myEvent);
      }
    }
  }
}

public class EmployeeMonitor
{
  public EmployeeMonitor(Employee myEmployee)
  {
    myEmployee.OnTax += new Employee.SalaryTaxEventHandler(DisplayMessage);
  }

  public void DisplayMessage( object myEmployee, SalaryEvent myEvent )
  {
    Console.WriteLine(myEvent.Message);
  }
}


class MainClass
{
  public static void Main()
  {
    Employee myEmployee = new Employee();
    EmployeeMonitor myEmployeeMonitor = new EmployeeMonitor(myEmployee);

    myEmployee.Salary = 100;
    myEmployee.Salary = 500;
    myEmployee.Salary = 2000;
  }
}
Employee meltdown in progress!








23.64.event
23.64.1.Events
23.64.2.Using Event Accessors
23.64.3.Event and event handler
23.64.4.Use delegate to handle events
23.64.5.Fire event in property setter
23.64.6.Events: add and remove functions for a private delegate event
23.64.7.Events: add and remove functions
23.64.8.Events add and remove with synchronized block
23.64.9.Events: Custom Add and Remove with Global delegate cache.
23.64.10.A .NET-compatible event
23.64.11.Use the built-in EventHandler delegate
23.64.12.Use an anonymous method as an event handler
23.64.13.Ignored Parameters Anonymous Methods for Button click, kepressed and mouse clicked action
23.64.14.Events and form controls