posts - 21,  comments - 1,  trackbacks - 0

    class PubEventArgs : EventArgs
    
{
        
private readonly string m_name;
        
private readonly DateTime m_date;
        
public PubEventArgs (string name,DateTime date )
        
{
            m_name
=name ;
            m_date 
= date;
        }

        
public string name
        
{
            
get 
            
{
                
return m_name;
            }

        }

        
public DateTime  date
        
{
            
get
            
{
                
return m_date;
            }

        }


    }

    
class Publisher   //发行方
    {
        
public delegate void PubComputerEventHandler(object sender, PubEventArgs e);   //定义委托
        public delegate void PubLifeEvertHandler(object sender, PubEventArgs e);       //定义委托
        public event PubComputerEventHandler pubcomputer;       //定义事件      格式:【访问修饰符】 + event + 委托 +事件名
        public event PubLifeEvertHandler publife;               //定义事件
        public virtual void OnComputer(PubEventArgs e)   
        
{
            PubComputerEventHandler handler 
= pubcomputer;   //声明临时委托
            if (handler != null)
            
{
                handler(
this,e );
            }

        }

        
public virtual void OnLife(PubEventArgs e)
        
{
            PubLifeEvertHandler handler 
= publife;
            
if(handler !=null )
            
{
                handler(
this, e);
            }

        }

        
public void IstureComputer(string name, DateTime date)  //触发电脑杂志事件
        {
            Console.WriteLine(
"发行" + name);
            OnComputer(
new PubEventArgs (name,date )); 
        }

        
public void IstrueLife(string name, DateTime date)    //触发生活杂志事件
        {
            Console.WriteLine(
"发行" + name);
            OnLife(
new PubEventArgs(name, date));
        }


    }

    
class Reader    //订阅事件
    {
        
private string name;
        
public Reader(string name)
        
{
            
this.name = name;
        }

        
public void Receive(object sender, PubEventArgs e)  //必须和委托参数一样
        {
            Console.WriteLine(e.date 
+ "已收到" + name + e.name);
        }

    }

    
class Test
    
{
        
static void Main()
        
{
            Publisher aa 
= new Publisher();
            Reader zs 
= new Reader("张三");
            
//订阅事件   格式:事件名+=new 委托名()
            aa.pubcomputer += new Publisher.PubComputerEventHandler(zs.Receive);   //触发事件
            Reader ls = new Reader("李四");
            aa.pubcomputer 
+= new Publisher.PubComputerEventHandler(ls.Receive);  //触发事件
            aa.publife += new Publisher.PubLifeEvertHandler(ls.Receive);          //触发事件
            aa.IstureComputer ("电脑杂志" , Convert.ToDateTime("2005-08-18"));
         
            aa.IstrueLife(
"生活杂志" , Convert.ToDateTime("2005-08-18"));


        }

    }


  

posted on 2008-05-07 00:02 默默無語中 阅读(18) 评论(0)  编辑 收藏 网摘

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-05-07 08:37 编辑过
Google站内搜索

相关文章:

相关链接:


 
<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

21世纪一个人的成功不完全是你的才华 关键是你能够统占整合多少资源 然后达成一个预计的目标

 
点击这里给我发消息 
无限次升级的江民杀毒软件

与我联系

搜索

 

常用链接

留言簿

随笔档案(21)

文章档案(3)

相册

收藏夹(13)

一个收藏经典的站

最新随笔

最新评论

评论排行榜