黑马程序员技术交流社区
标题: 关于委托的问题 [打印本页]
作者: 1174478646 时间: 2015-1-26 08:41
标题: 关于委托的问题
委托可以在函数内传递方法,类似于一个函数指针。但在实际学习中并没有看见委托的好处,我依然要将所有的方法都写出来再调用,新人求解
作者: 许庭洲 时间: 2015-1-26 09:47
1. 委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的调用可以像其他任何方法一样,具有参数和返回值,
示例所示:public delegate int PerformCalculation(int x,int y);
2. 委托是一种安全地封装方法的类型,它与 C 和 C++ 中的函数指针类似。与 C 中的函数指针不同,委托是面向对象的、类型安全的和保险的;
3. 委托类型派生自 .NET Framework 中的Delegate 类。委托类型是密封的,不能从 Delegate 中派生委托类型,也不可能从中派生自定义类。
4. 例如:
// Create a method for a delegate.
public static void DelegateMethod(stringmessage)
{
System.Console.WriteLine(message);
}
// Instantiate the delegate.
Del handler = DelegateMethod;
// Call the delegate.
handler("Hello World");
作者: DCM 时间: 2015-1-26 23:32
刚自学到委托,如果你是想知道委托的好处,个人觉得,委托方便你以抽象的思维去思考一个程序,当想完成某一功能时,详细的具体的完成步骤可以不用实现,像一个填空题,现用委托去把空位填上,之后具体的实现功能的代码,可以通过委托,来具体实现,个人的片面理解,给点分呗
作者: 江华 时间: 2015-2-20 17:56
刚看到的一个帖子,分享给你!
http://www.cnblogs.com/kissazi2/p/3189685.html
作者: 江华 时间: 2015-2-20 18:22
仔细看了百度百科 以后,发现它将的更细致,但是没有上一个的调理清晰。下边是百科的链接
http://baike.baidu.com/link?url=GzPNAjq1vg-hf-ouHY8mDq8UcjltJGRB95ginLIe54g9Z8InCfWVAQNLftTmRXSJeFNWCIjkMMjswcOa0Bcu7a
作者: 江华 时间: 2015-2-20 18:32
看了以上两个帖子以后,我有一个模糊的概念:
委托,是一个类型修饰符,经过这个修饰符修饰的类,增添了新的特性;
第一、拥有了把方法当做参数使用的能力;
第二、它突破了访问类内部的限制(在Public 修饰下,不用Public 个人感觉好像没什么意义啦);
第三、它虽然是一个类型修饰符,但是又不像其他类型那一样,只是拥有赋值(“=”)的功能,它同时还有订阅(+=)/取消订阅(-=),这样就形成了,一对多的关系。
因为第二项功能又打破面向对象的思想的嫌疑,又把委托的权限和功能进行了一个弱化,于是event 事件 这个功能就诞生了。
欢迎各位指正
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |