c#中时间和委托的使用

事件是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);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值