永发信息网

C#中的委托事件什么意思

答案:1  悬赏:0  手机版
解决时间 2021-02-19 12:14
C#中的委托事件什么意思
最佳答案
这个是n多面试笔试里面爱出的一道题,老生常谈。。。
我讨厌复制粘贴,直接告诉你我的理解,希望对你有帮助---
委托是一种在对象里保存方法引用的类型,同时也是一种类型安全的函数指针。
给你举个例子:
//声明一个委托,这里的NewDelegate()可以理解为是之后用来取方法的一个类型。
delegate void NewDelegate();
//下面定义的a,b两种方法,你可以理解为NewDelegate这个类型的两个实例。
public void a(){};
public void b(){};
public void main()
{
NewDelegate dgt1=new NewDelegate(a);
NewDelegate dgt2=new NewDelegate(b);
//dgt1指向方法a,dgt2指向方法b。也就是说一个方法的返回值和参数类型数量与声明的委托
//相符时,就可以用一个委托来调用这个方法。而这个方法的名称作为参数传递给实例化的那个委托
}

事件是一种特殊的委托,为什么这么说呢?
用反编译工具反编译.net framework即可发现,事件的定义(这里只是举其中一种事件的定义,事件的参数在类库中定义有区别),如下:
public delegate void EventHandler(object sender, EventArgs e);
而常见的各种控件的Click事件是如何定义的呢?
public event EventHandler Click;
说明 Click事件是一个委托
而我们常见的一个Button控件添加一个事件是怎么做的呢?
PageLoad里:Button1.Click+=new EventHandler(Button1_Click);
定义Button1的事件 protected Button1_Click(object sender,EventArgs e){}
如你所见,这是一个很典型的委托调用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
简述组织结构图的基本图示和绘制组织结构图的
移动取消共享流量的指令是什么
有关电子信息工程专业大二的学生生涯规划
关于长生劫的一本小说有谁知道?
一块石头顺着山势又蹦又跳地落在小溪里。这句
为什么香烟明明说了有害健康还是有那么多人吸
华叶PBO250克包装多少钱
养精三宝是什么?
香里胡拉村在哪里啊,我有事要去这个地方
什么是免赔额?简述免赔额的作用与种类。
出老千焊记什么意思
1040交钱能退吗?我刚交钱不想做了,骗我的人
喜来乐副食品商店地址在什么地方,想过去办事
你好2017新款吉利远景带天窗,高配置裸车价是
薛之谦不知道为了什么
推荐资讯
三次元q男头 谢谢大佬
上海人怎么称呼外公外婆?
道教的主要教派有哪些?
如图,姐弟两人在周长为
安琼便利店地址在哪,我要去那里办事
怎么压缩视频大小
团队起名字运气的运后面什么名字比较好
2.2kW的异步电动机,运行于相电压为220V的三
某小儿患佝偻病,发烧时就会抽搐,根据所学知
名优建材城C馆二楼南入口在什么地方啊,我要
微信是多大内存
功率因数是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?