您的位置:首页 > 编程语言 > C#

c#中时间和委托的 adbb 使用

2014-10-22 18:10 369 查看
事件是C#的重要概念,在发生其他类或者对象需要关注手,本类或对象可以通过时间来通知它们,发送事件的类称为事件的发送者,而接收事件的类称为事件的订阅户。

委托:

委托调用方法流程,以下面的实例作详细阐述,

1.首先需要定义一个委托,使用的是关键字delegate,如下:

public delegate void Mydelegate(string str);

他的返回类型和参数必须和它调用的方法的返回类型和参数相匹配。

2.接下来是定义该委托需要调用的方法,本例定义了两个方法,用于对字段s进行不同修改,如下:

public void Method1(string str)

{

s=5;

}

public void Method2(string str)

{

s=7;

}

3.创建委托对象,对声明的方法进行包含,如下:

Test test=new Test();

Mydelehate d1=new Mydelegate(test.Method1);

Mydelehate d2=new Mydelegate(test.Method2);

4.最后就是完成方法的调用,如下:

public void Call(Mydelegate d,string str)

{

d(str);

Console.WriteLine(str);

}

这里是用了两个参数,第一个参数是创建委托的对象,它能直接通过调用方法的参数完成对方法的调用,第二个参数是调用的方法的参数。

委托的事件处理程序

1.首先还是需要定义委托,事件中的委托和普通委托有区别的,它的参数形式如下:

public delegate void MyHandler1(object sender,MyEventArgs e);

事件中的委托具有两个参数,第一个参数表示事件的触发对象,第二个参数表示处理事件的对象,它从EventArgs类继承而来,其中:

public class MyEventArgs:EventArgs

{

public string str;

}

2.接下来需要在Class2中完成事件的声明和触发,如下:

public Class2

{

public event MyEventHandler1 Event1;

public void mEvent1(MyEventArgs e)

{

if(Event1!=null)

{

Event1(this,e);

}

}

}

class Class1

{

public Class1(Class2)

{

MyEventHandler1 mh1=new MyEventHandler1(Method1);

calss.Event1+=mh1;

}

public void Method1(object sender,MyEventAgrs e)

{

Console.WriteLine("处理事件结果?;"+e.str);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: