A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1174478646 中级黑马   /  2015-1-26 08:41  /  1326 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

委托可以在函数内传递方法,类似于一个函数指针。但在实际学习中并没有看见委托的好处,我依然要将所有的方法都写出来再调用,新人求解

5 个回复

倒序浏览
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");

回复 使用道具 举报
刚自学到委托,如果你是想知道委托的好处,个人觉得,委托方便你以抽象的思维去思考一个程序,当想完成某一功能时,详细的具体的完成步骤可以不用实现,像一个填空题,现用委托去把空位填上,之后具体的实现功能的代码,可以通过委托,来具体实现,个人的片面理解,给点分呗
回复 使用道具 举报
刚看到的一个帖子,分享给你!
http://www.cnblogs.com/kissazi2/p/3189685.html
回复 使用道具 举报
仔细看了百度百科 以后,发现它将的更细致,但是没有上一个的调理清晰。下边是百科的链接
http://baike.baidu.com/link?url=GzPNAjq1vg-hf-ouHY8mDq8UcjltJGRB95ginLIe54g9Z8InCfWVAQNLftTmRXSJeFNWCIjkMMjswcOa0Bcu7a
回复 使用道具 举报
看了以上两个帖子以后,我有一个模糊的概念:
委托,是一个类型修饰符,经过这个修饰符修饰的类,增添了新的特性;
第一、拥有了把方法当做参数使用的能力;
第二、它突破了访问类内部的限制(在Public 修饰下,不用Public 个人感觉好像没什么意义啦);
第三、它虽然是一个类型修饰符,但是又不像其他类型那一样,只是拥有赋值(“=”)的功能,它同时还有订阅(+=)/取消订阅(-=),这样就形成了,一对多的关系。
因为第二项功能又打破面向对象的思想的嫌疑,又把委托的权限和功能进行了一个弱化,于是event 事件 这个功能就诞生了。

欢迎各位指正

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马