C#事件小例

原创 2006年06月07日 14:04:00
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;
}
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

分分钟用上C#中的委托和事件

分分钟用上C#中的委托和事件 每一个初学C#的程序猿,在刚刚碰到委托和事件的概念时,估计都是望而却步,茫然摸不到头脑的。百度一搜,关于概念介绍的文章大把大把的,当然也不乏深入浅出的好文章。可...

C#委托和事件

  • 2015-08-14 17:18
  • 95KB
  • 下载

C# 中的委托和事件

  • 2015-05-15 08:36
  • 222KB
  • 下载

C#中的委托和事件

文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错,解决办法是显式的创建...

C#控件属性事件大全

  • 2014-03-04 12:04
  • 177KB
  • 下载

C#委托与事件(张子阳).pdf

  • 2012-10-21 17:08
  • 634KB
  • 下载

C#中的事件代理

今天看WEB引用的时候翻到了C#语法那一部分,本以为自己都学过,可是在类成员这一章看到了事件代理这个名词,抱着以不知为耻的心态我迅速学习了一下。 创建事件代理,并且参数需要使用自己写的OilEven...

C#事件 举例

  • 2013-02-22 13:52
  • 68KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)