EventArgs

本文详细介绍了如何利用事件处理机制实现猫和鼠之间的互动,通过事件委托和代理模式,猫能发出特定的叫声,并触发鼠的反应。文章进一步演示了如何使用JavaScript注册事件处理器并进行输出操作,最终通过脚本实现信息的实时显示。
public class CatShoutEventArgs : EventArgs
{
    private string name;
    public String Name
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
        }
    }
}

public class CatArgs
{
    public string OutPutStr;
    private string catName;
    public CatArgs(string name)
    {
        this.catName = name;
    }

    public delegate void CatShoutEventHandler(object sender, CatShoutEventArgs args);
    public event CatShoutEventHandler CatShoutArgs;
    
    public void Shout()
    {
        this.OutPutStr = string.Format("Hellow Mice,I am {0}. ",catName);
        if (CatShoutArgs != null)
        {
            CatShoutEventArgs e = new CatShoutEventArgs();
            e.Name = this.catName;
            CatShoutArgs(this, e);
        }
    }
}

public class MouseArgs
{
    public string OutPutStr;
    private string mouseName;

    public MouseArgs(string name)
    {
        this.mouseName = name;
    }

    public void Run(object sender,CatShoutEventArgs args)
    {
        OutPutStr = string.Format("{0} run!{1} is coming. ", this.mouseName,args.Name);
    }
}

然后调用输出:

protected void btnArgs_Click(object sender, EventArgs e)
    {
        CatArgs cat = new CatArgs("Cat");
        MouseArgs mouse1 = new MouseArgs("jeff");
        MouseArgs mouse2 = new MouseArgs("jack");

        //表示将Mouse的Run方法通过实例化委托Cat.CatShoutEventHandler登记到
        //Cat的事件CatShout当中。
        cat.CatShoutArgs+=new CatArgs.CatShoutEventHandler(mouse1.Run);
        cat.CatShoutArgs+=new CatArgs.CatShoutEventHandler(mouse2.Run);

        cat.Shout();

        string scriptStr = string.Format(@"<script type='text/javascript'>alert('{0}{1}{2}')</script>",cat.OutPutStr,mouse1.OutPutStr,mouse2.OutPutStr);
        ClientScript.RegisterStartupScript(typeof(Page), "", scriptStr);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值