C#的委托(Delegate)类似于C\C++的函数指针。委托是存有对某一个方法引用的一种引用变量类型,引用可在运行时被改变。

委托特别用于实现事件和回调方法。所有的委托都派生自System.Delegate类。

委托的声明

委托声明决定了可由该委托引用的方法,委托可指向一个与其有相同标签的方法。

以下是一个委托的声明

public delegate string newDelegate(string str);

该声明表示此委托可以引用任何一个单字符参数的方法并且返回值为bool类型。

声明语法

delegate <return type> <delegatename> (<paramter list>)

委托实例化

委托实例化和实例化类一样,使用new关键字

newDelegate newDelegate = new newDelegate(function);

其中function为被引用的方法名,同一类作用域内只能引用静态的方法

委托的应用

定义一个委托,以及两个方法

    public delegate void delegateDemo();
public class FunStudy
{
public void stepOne()
{
Console.WriteLine("步骤一:打开冰箱门");
} public void stepTwo()
{
Console.WriteLine("步骤二:大象装冰箱里");
}
}
        static void Main(string[] args)
{
FunStudy funStudy = new FunStudy(); delegateDemo demo = funStudy.stepOne;
demo += funStudy.stepTwo;
demo();
}

执行效果

最新文章

  1. ENode框架Conference案例分析系列之 - 架构设计
  2. IE10,11下_doPostBack未定义错误的解决方法
  3. MVC自动生成数据库【Code-FIrst方式】
  4. CSS3 让图片镜像对称
  5. c++英文单词频度统计程序
  6. [转] matlab saveas 和imwrite的区别
  7. 关于NopCommerce3.6版的@Html.Widget(“home_page_top”)的说明
  8. 阅读verilog程序总结
  9. Tornado,了解一下
  10. c语言字符数组和指针的经典用法
  11. 身份证js检测
  12. static DEVICE_ATTR(val, S_IRUGO | S_IWUSR, hello_val_show, hello_val_store); 的作用
  13. [转载]github在线更改mysql表结构工具gh-ost
  14. php 多维数组 array sort 排序 :array_multisort
  15. VIM简单配置
  16. 红米3 TWRP-3.2.1-0(android_7.1.2_r29) 刷8.1不提示错误 刷MIUI不再卡屏 修复无系统重启问题 更新于20180316
  17. java Name [jdbc/myjavadb] is not bound in this Context. Unable to find [jdbc].
  18. 关于KMP
  19. Redis 的线程模型
  20. SpringMVC框架项目在编译运行是常见错误

热门文章

  1. Datahero Inc利用区块链溯源,造福各行各业
  2. 09、IO流—File类与IO流
  3. Laravel Queues 队列应用实战
  4. 完全基于node的web应用
  5. 后端程序员之路 22、RESTful API
  6. SpringMVC异步处理的 5 种方式
  7. java 流程控制学习
  8. Linux增删改查移文件、文件夹
  9. 关于windows下服务一直处于启动ing的处理办法
  10. python中函数与方法的区别