委托与事件(迷糊………………)

本文深入探讨了C#中的委托与事件机制,详细解释了委托的定义、声明及应用,以及事件的声明和使用方式。通过实例演示,展示了如何利用委托实现事件的灵活响应与方法的复用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

委托的声明
public delegate void MyDelegate(string str);

委托是一种特殊的类型--class,用途是来实现对一种方法的封装。在某种事件发生时,自动调用该方法。好处显然易见,它使用户可以自定义自己的方法实现,通过封装,CLR会在相应事件激发时调用你定义的方法,实现你的功能。
1.委托的定义和方法的定义类似,只是在前面加了一个delegate,但委托不是方法,它是一种类型。是一种特殊的类型,看成是一种新的对象类型比较好理解。用于对与该委托有相同签名的方法调用。

例子:

public delegate void SayDelegate(string name);//先声明一个委托:

public class ClassPeople
{
public void SayChinese(string name)
{
Console.WriteLine("你好!"+name);
}
public void SayEnglish(string name)
{
Console.WriteLine("Hello"+name);
}
public void DoWork(string name,SayDelegate MakeSay)//这样就可以一参数的形式进行传递……
{
MakeSay(name);
}
}
class Program
{
static void Main()
{
ClassPeople people = new ClassPeople();
people.DoWork("陈兵辉",people.SayChinese);
people.DoWork("chenbinghui",people.SayEnglish);
Console.ReadKey();
}
}

事件概述

事件就是当对象或类状态发生改变时,对象或类发出的信息或通知。发出信息的对象或类称为"事件源",对事件进行处理的方法称为"接收者",通常事件源在发出状态改变信息时,它并不知道由哪个事件接收者来处理.这就需要一种管理机制来协调事件源和接收者,C++中通过函数指针来完成的.在C#中事件使用委托来为触发时将调用的方法提供类型安全的封装


事件的声明

1.声明一个委托
public delegate void EventHandler(object sender, System.EventArgs e);

2.声明一个事件
public event EventHandler Changed;
………………………………

………………………………

………………………………

不是太理解还有继续研究……

………………………………

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值