C#事件小例
来源:互联网 发布:数据报表展示解决方案 编辑:程序博客网 时间:2024/05/01 02:50
using System;
namespace UCOM.HR{
//定义一个ComputeSalaryCallback事件代表类型.
public delegate void ComputeSalaryCallback(string EmpID,double Salary);
public class Employee{
//声明一个事件,名称为OnComputSalaryDone,事件类型是ComputeSalaryCallback.
public event ComputeSalaryCallback OnComputSalaryDone;
public Employee(){
mstrEmpID="999";
mstrEmpName="Miles";
}
public Employee(string EmpID,double BaseSalary){
mstrEmpID=EmpID;
mdbBaseSalary=BaseSalary;
}
//定义事件触发函数Computesalary(在函数ComputeSalary被调用是就会触发OnComputSalaryDone事件)
public virtual double ComputeSalary(){
ONComputeSalaryDone(mstrEmpID,mdblBaseSalary);//触发OnComputSalaryDone事件
return mdblBaseSalary;
}
public void SetEmpID(string EmpID){
mstrEmpID=EmpID;
}
public string GetEmpID(){
return mstrEmpID;
}
public double GetBaseSalary(){
return mdblBaseSalary;
}
public void SetEmpName(string EmpName){
mstrEmpName=EmpName;
}
public string GetEmpName(){
return mstrEmpName;
}
public static void SetCompanyName(string CompanyName){
mstrCompanyName=CompanyName;
}
public static string GetCompanyName(){
return mstrCompanyName;
}
private static string matrCompanyName="";
protected string mstrEmpID="";
protected string mstrEmpName="";
protected double mdblBaseSalary=0;
}
public class Sales:employee{
public Sales(string EmpID,double BaseSalary);
base(EmpID,BaseSalary){}
public voerride double ComputeSalary(){
return mdblBaseSalary+mdbBonus;
}
public double GetBonus(){
return mdblBonus;
}
public void SetBonus(double Bonus){
mdblBonus=Bonus;
}
private double mdblBonus=0;
}
public class HumanResource{
//定义两个事件处理函数.
public static void SalaryHandler(string EmpID,double Salary){
Console.WriteLine("员工:员工代号={0},薪金={1}",EmpID,Salary);
}
public static void SalaryHandler2(string EmpID,double Salary){
Console.WriteLine("2员工:员工代号={0},薪金={1}",EmpID,Salary);
}
public static int Main(){
Employee e1= new Employee("001",5000);
//使用"+="将事件与事件处理函数连接起来.
e1.OnComputeSalaryDone += new ConputeSalaryCallback(SalaryHandler2);
e1.OnComputeSalaryDone += new ComputeSalaryCallback(SalaryHandler);
//调用事件触发函数.
e1.ComputeSalary();
return 0;
}
}
}
namespace UCOM.HR{
//定义一个ComputeSalaryCallback事件代表类型.
public delegate void ComputeSalaryCallback(string EmpID,double Salary);
public class Employee{
//声明一个事件,名称为OnComputSalaryDone,事件类型是ComputeSalaryCallback.
public event ComputeSalaryCallback OnComputSalaryDone;
public Employee(){
mstrEmpID="999";
mstrEmpName="Miles";
}
public Employee(string EmpID,double BaseSalary){
mstrEmpID=EmpID;
mdbBaseSalary=BaseSalary;
}
//定义事件触发函数Computesalary(在函数ComputeSalary被调用是就会触发OnComputSalaryDone事件)
public virtual double ComputeSalary(){
ONComputeSalaryDone(mstrEmpID,mdblBaseSalary);//触发OnComputSalaryDone事件
return mdblBaseSalary;
}
public void SetEmpID(string EmpID){
mstrEmpID=EmpID;
}
public string GetEmpID(){
return mstrEmpID;
}
public double GetBaseSalary(){
return mdblBaseSalary;
}
public void SetEmpName(string EmpName){
mstrEmpName=EmpName;
}
public string GetEmpName(){
return mstrEmpName;
}
public static void SetCompanyName(string CompanyName){
mstrCompanyName=CompanyName;
}
public static string GetCompanyName(){
return mstrCompanyName;
}
private static string matrCompanyName="";
protected string mstrEmpID="";
protected string mstrEmpName="";
protected double mdblBaseSalary=0;
}
public class Sales:employee{
public Sales(string EmpID,double BaseSalary);
base(EmpID,BaseSalary){}
public voerride double ComputeSalary(){
return mdblBaseSalary+mdbBonus;
}
public double GetBonus(){
return mdblBonus;
}
public void SetBonus(double Bonus){
mdblBonus=Bonus;
}
private double mdblBonus=0;
}
public class HumanResource{
//定义两个事件处理函数.
public static void SalaryHandler(string EmpID,double Salary){
Console.WriteLine("员工:员工代号={0},薪金={1}",EmpID,Salary);
}
public static void SalaryHandler2(string EmpID,double Salary){
Console.WriteLine("2员工:员工代号={0},薪金={1}",EmpID,Salary);
}
public static int Main(){
Employee e1= new Employee("001",5000);
//使用"+="将事件与事件处理函数连接起来.
e1.OnComputeSalaryDone += new ConputeSalaryCallback(SalaryHandler2);
e1.OnComputeSalaryDone += new ComputeSalaryCallback(SalaryHandler);
//调用事件触发函数.
e1.ComputeSalary();
return 0;
}
}
}
- C#事件小例
- c# 事件委托小例子
- C#事件-经典小例子
- c#事件处理小例子
- C# 委托 事件 学习 以及 小DEMO
- C#语法小知识(九)事件
- C#事件中sender的小用法
- 委托、事件小例
- C#反射小例
- c# timerCallback小例
- 学习c#的事件时写的一个小程序
- C#中的委托和事件(小例子)
- C#连接MySql小例
- c#事件
- c#事件
- C#事件
- c#事件
- C#事件
- DOM将XML文件解析为文档的过程
- 最低公共祖先
- C#枚举局域网网络成员
- C#数据库操作
- C#动态菜单
- C#事件小例
- Services-Oriented Arthitecture的概念和基础
- 蓝屏提示代码详解
- ASP.NET中如何实现同一时间只有一人能够修改系统数据
- DataRelation应用
- PEview Version 0.9.5 by Wayne J. Radburn
- (转贴)↑→40种网页常用小技巧(javascript)←↓------[
- Repeater绑定数据页面代码
- DOM单步调试文档