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# 经典小编程实例

2013年8月25日 巧用位移运算符获取汉字编码值 1.巧用位移运算符获取汉字编码值 本实例实现时主要是利用移位运算符获取汉字编码值,先讲解一下位移运行符的相关概念。 位移运算符分为左位移运算符“...
  • Eduora_meimei
  • Eduora_meimei
  • 2013年09月24日 18:43
  • 3263

委托、事件小例

朋友在写socket的程序,希望将业务逻辑和界面分离。 写了个运用事件、委托的小demo,不当之处还望多多指点。   业务逻辑代码:   class KeyEventArgs : E...
  • JustinWang2010
  • JustinWang2010
  • 2012年12月02日 09:44
  • 88

C#窗体之整人小程序

今天在人人上看到一个好玩的gif图,
  • xiaoseqingchun
  • xiaoseqingchun
  • 2014年07月17日 23:03
  • 5637

C#反射小例

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Refle...
  • aladdinty
  • aladdinty
  • 2009年01月05日 22:54
  • 927

c# timerCallback小例

考虑这样的场景:需要定时去完成某个任务(例如,定时去远程server取数据,定时更新数据库的某个字段等),对于此类业务,C#也做了封装,可以帮助我们方便的去完成。代码段: 代码说明:new了一个Tim...
  • csharp25
  • csharp25
  • 2011年06月18日 11:41
  • 1721

c#经典编程实例(四窗体应用程序)

一:.NET中窗体应用程序就是一种GUI程序 窗体创建的两种方式: (1)自动生成的是: Application.Run(new Form1()); 相当于: Form1 f...
  • zxq1138634642
  • zxq1138634642
  • 2013年06月15日 18:13
  • 23190

用timer做红绿灯的小程序

用C#的timer做了个红绿灯,可按按钮,可自动,可闪烁,可倒计时。这个程序很小啦,所以不怎么解释,贴了再说~~~using System;using System.Collections.Gener...
  • LAIER903
  • LAIER903
  • 2010年07月27日 14:20
  • 1054

用C++实现《经典c程序100例》(未完待续)

《经典c程序100例》这个文章是我在百度文库中看到的,看到这个文章心情非常激动,很感激原创者的伟大贡献!太伟大了!!感觉里面的小例子拿来用于练习很能够活跃算法思维。  本文主要是用C++实现《经典c...
  • u013174689
  • u013174689
  • 2013年12月23日 18:36
  • 2757

java初学基础班经典练手小程序300例

java初学基础班经典练手小程序300例(飘叶寻梦整理)  (2012-07-11 22:51:44) 转载▼ 标签:  java   经典小程序   ...
  • qq_28967695
  • qq_28967695
  • 2017年01月03日 17:39
  • 1547

小程序的事件

小程序的事件主要有三种类型:1-单击事件2-双击事件3-长按事件单击事件由touchstart、touchend组成,touchend后触发tap事件。(1)单击事件view代码 点我吧...
  • qq_24147051
  • qq_24147051
  • 2016年12月19日 20:50
  • 1105
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#事件小例
举报原因:
原因补充:

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