前往顾页
以后地位: 主页 > 收集编程 > .Net实例教程 >

.NET拜托及事件教程

时候:2010-06-22 10:21来源:知行网www.zhixing123.cn 编辑:麦田守望者

 

拜托是一个类。
定义拜托时,实是定义一个用户自定义的类,它能代表具有不异参数列表和前往范例的任何体例,体例可所以静态体例或成员体例。示例:
public partial class Form1 : Form
{
    private void button1_Click(object sender, EventArgs e)
    {
        MyClass mc = new MyClass();
        mc.dlg = new MyDelegate(DlgMethod);
        mc.dlg += new MyDelegate(DlgMethod2);//多播
        mc.TriggerDlg();
    }
 
    private void DlgMethod(string s)
    {
        //do some work
        MessageBox.Show(s);
}
 
    private void DlgMethod2(string s)
    {
        //do some work
        MessageBox.Show("multicast:"+s);
}
}
 
public delegate void MyDelegate(string s);
 
class MyClass
{
    public MyDelegate dlg;
 
    public void TriggerDlg()
    {
        if (dlg != null)
       {
            dlg("param string for delegate");
        }
    }
}
 
事件是拜托的一个实例。
《C#法度员参考手册》:C#利用一种拜托模型来实现事件。事件的措置体例没必要在将天生事件的类中定义。这类机制有很多上风。比方,它既有遍及性,又很矫捷。假想利用法度中有两个按钮,但这两个按钮的感化不合。如果事件措置法度被绑定到事件源,我们可能必须写两个派生的按钮类,每个派生类有本身的事件措置法度。
……事件天生者把事件拜托的一个实例定义为它的成员。事件消耗者是那些希望在事件产生时获得告诉的工具。它们定义将和事件拜托关联的事件措置体例。当天生事件时,事件天生者经由过程调用事件拜托“触发”事件。然后拜托调用和它关联的事件措置体例。示例:
public delegate void MyDelegate(string s);
 
class MyClass
{
    public event MyDelegate myEventHandler;
    public List<string> l;
 
    public MyClass()
    {
        l = new List<string>();
    }
 
    public void AddElement(string s)
    {
        l.Add(s);
        if (myEventHandler!=null)
        {
            myEventHandler("add element:"+s);
        }
    }
}
 
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
 
    private void button1_Click(object sender, EventArgs e)
    {
       
顶一下
(0)
0%
踩一下
(0)
0%
------分开线----------------------------
标签(Tag):.NET .NET教程
------分开线----------------------------
颁发评论
请自发遵循互联网相关的政策法规,严禁公布色情、暴力、革命的谈吐。
评价:
神色:
考证码:点击我更换图片
猜你感兴趣