C#中委托和事件的一个简单实例


using System;
class publishr//声明一个类
{  
 public delegate void pubcomputer(string zazhiname);//声明一个带参数的委托
 public delegate void pubwomen(string zazhiname);//同上
 public event pubcomputer onpubcomputer;//声明了一个事件,对应着上面的pubcomputer委托
 public event pubwomen onpubwomen;//又声明了一个事件,对应着上面的pubwumen委托类型
 public void iscomputer()//声明了一个方法,判断并触发事件
 {
  if (onpubcomputer==null)
  {
   Console.WriteLine(" no pub  computer zazhi ");
  
  }
  else
  {
   Console.WriteLine(" pub computer zazhi");
   onpubcomputer(" computer ");//事件对应的委托对象,委托如果带参数,事件也要带参数!
  }
 
 }
  public void iswomen()
 {
  if (onpubwomen==null)
  {
   Console.WriteLine(" no pub women zazhi ");
  
  }
  else
  {
   Console.WriteLine(" pub women zazhi");
   onpubwomen(" women ");//同上
  }
 
 }

}
class yonghu//用户类
{
 private string name;
 public yonghu(string name)//声明了一个构造函数
  {
  this.name=name;
 }
 public void receive(string zazhiname)//声明了一个方法
 {
  Console.WriteLine(name+" receive "+zazhiname+"zazhi");
 }

}
class main
{
 static void Main()//入口函数
 {
  publishr pub =new publishr();// publishr类实例化
  yonghu zs =new yonghu("mary");//用户类实例化
  yonghu ls=new yonghu("john");//同上
  pub.onpubcomputer +=new publishr.pubcomputer(zs.receive);//pub 对象的事件通过publishr.pubcomputer委托加载了zs即用户类实例的一个方法
  pub.iscomputer();//通过publishr的对象方法触发publishr类的事件
  pub.onpubwomen +=new publishr.pubwomen(ls.receive);//道理同上
  pub.iswomen();//道理同上
  
  
 
 }

}

转载于:https://www.cnblogs.com/yeye518/archive/2008/07/01/2231733.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值