欢迎来到天天文库
浏览记录
ID:21902811
大小:730.50 KB
页数:37页
时间:2018-10-25
《c#中委托,事件理解入门》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C#中委托,事件理解入门目录l 导论l 什么是委托l 事件的理解l 事件关键字l 最后导论在学习C#中的委托和事件过程中,我读了许多文章来理解他们二者究竟是怎么一回事,以及如何使用他们,现在我将整个的理解过程陈述以下,我学到的每一方面,恐怕也是你们需要掌握的。什么是委托?委托和事件这两个概念是完全配合的。委托仅仅是函数指针,那就是说,它能够引用函数,通过传递地址的机制完成。委托是一个类,当你对它实例化时,要提供一个引用函数,将其作为它构造函数的参数。每一个委托都有自己的签名,例如:Delegatein
2、tSomeDelegate(strings,boolb);是一个委托申明,在这里,提及的签名,就是说SomeDelegate这个委托有string和bool类型的形参,返回一个int类型。上面提及的:当你对委托实例化时,要提供一个引用函数,将其作为它构造函数的参数。这里要注意了:被引用的这个函数必须和委托有相同的签名。看下面的函数:privateintSomeFunction(stringstr,boolbln){...}你可以把这个函数传给SomeDelegate的构造函数,因为他们有相似的签名(inotherwords,他们都有相同的形参类型和个数,并且返
3、回相同的数据类型)。 SomeDelegatesd=newSomeDelegate(SomeFunction); sd引用了SomeFunction,也就是说,SomeFunction已被sd所登记注册,如果你调用sd,SomeFunction这个函数也会被调用,记住:我所说SomeFunction的含义,后面,我们会用到它。 现在,你应该知道如何使用委托了,让我们继续理解事件之旅……事件的理解 我们知道,在C#中:l 按钮(Button)就是一个类,当我们单击它时,就触发一次click事件。l 时钟(Timer)也是一个类,每过一
4、毫秒,就触发一次tick事件。让我们通过一个例子来学习,假定有这样的情节: 现在有一个Counter的类,它有一个方法CountTo(intcountTo,intreachableNum),该方法表示:在指定的时间段内(0~countTo),当到达指定的时间点reachableNum时,就触发一次NumberReached事件。C#中委托,事件理解入门目录l 导论l 什么是委托l 事件的理解l 事件关键字l 最后导论在学习C#中的委托和事件过程中,我读了许多文章来理解他们二者究竟是怎么一回事,以及如何
5、使用他们,现在我将整个的理解过程陈述以下,我学到的每一方面,恐怕也是你们需要掌握的。什么是委托?委托和事件这两个概念是完全配合的。委托仅仅是函数指针,那就是说,它能够引用函数,通过传递地址的机制完成。委托是一个类,当你对它实例化时,要提供一个引用函数,将其作为它构造函数的参数。每一个委托都有自己的签名,例如:DelegateintSomeDelegate(strings,boolb);是一个委托申明,在这里,提及的签名,就是说SomeDelegate这个委托有string和bool类型的形参,返回一个int类型。上面提及的:当你对委托实例化时,要提供一个引用函
6、数,将其作为它构造函数的参数。这里要注意了:被引用的这个函数必须和委托有相同的签名。看下面的函数:privateintSomeFunction(stringstr,boolbln){...}你可以把这个函数传给SomeDelegate的构造函数,因为他们有相似的签名(inotherwords,他们都有相同的形参类型和个数,并且返回相同的数据类型)。 SomeDelegatesd=newSomeDelegate(SomeFunction); sd引用了SomeFunction,也就是说,SomeFunction已被sd所登记注册,如果你调用sd,SomeFu
7、nction这个函数也会被调用,记住:我所说SomeFunction的含义,后面,我们会用到它。 现在,你应该知道如何使用委托了,让我们继续理解事件之旅……事件的理解 我们知道,在C#中:l 按钮(Button)就是一个类,当我们单击它时,就触发一次click事件。l 时钟(Timer)也是一个类,每过一毫秒,就触发一次tick事件。让我们通过一个例子来学习,假定有这样的情节: 现在有一个Counter的类,它有一个方法CountTo(intcountTo,intreachableNum),该方法表示:在指定的时间段内(0~countT
8、o),当到达指定的时间点reachab
此文档下载收益归作者所有