注:委托最重要的用途最讲到事件和事件处理时才能说清,这里先简单介绍一下关于委托的一些内容

委托是一种可以把引用存储为函数的类型。这听起来相当棘手,但其机制是非常简单的。

1)委托的声明非常类似与函数,但不带函数体,且要使用delegate关键字。委托的声明指定了一个返回类型和一个参数列表。

2)再定义了委托之后,就可以声明发委托类型的变量。接着把这个变量初始化为与委托有相同返回类型和参数列表的函数的引用。

3)之后,就可以使用委托变量调用这个函数,就想该变量是一个函数一样。

示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace TestDelegate
{
class Program
{
delegate double ProcessDelegate(double param1,double param2);
static double Multiply(double param1, double param2)
{
return param1 * param2;
}
static double Divide(double param1, double param2)
{
return param1 / param2;
}
static void Main(string[] args)
{
ProcessDelegate process;
Console.WriteLine("Enter 2 numbers separated with a comma:");
string input = Console.ReadLine();
int commaPos = input.IndexOf(',');
double param1 = Convert.ToDouble(input.Substring(0,commaPos));
double param2 = Convert.ToDouble(input.Substring(commaPos + 1, input.Length - commaPos - 1)); Console.WriteLine("Enter M to multiply or D to divide:");
input = Console.ReadLine();
if (input=="M")
{
process = new ProcessDelegate(Multiply);
}
else
{
process = new ProcessDelegate(Divide);
}
Console.WriteLine("Result:{0}",process(param1,param2));
Console.ReadKey();
}
}
}

执行代码,结果如图所示:

最新文章

  1. iOS获取网络图片大小
  2. bzoj3157国王奇遇记(秦九韶算法+矩乘)&&bzoj233AC达成
  3. s5pv210编译qt
  4. JavaScript基础—插曲
  5. 由一个异常开始思考springmvc参数解析
  6. iOS第三方类库JSPatch(热更新)
  7. tachyon 集群安装
  8. UML_时序图画法
  9. hdu2036 (计算多边形的面积)
  10. ASM时的OFM特性对影的建数据文件名称的影响及为SYSTEM表空间的数据文件使用别名
  11. Spring源码情操陶冶-AbstractApplicationContext#registerBeanPostProcessors
  12. 漫谈Java IO之 Netty与NIO服务器
  13. 分享我编写的powershell脚本:ssh-copy-id.ps1
  14. less的安装和使用
  15. HTML5学习总结-番外05 http 状态码
  16. VueRouter 源码深度解析
  17. SaltStack 和 Ansible 的简单比较
  18. DbContextScope,A simple and flexible way to manage your Entity Framework DbContext instances,by mehdime
  19. hex string 换转
  20. git branch 命令

热门文章

  1. ZooKeeper+Dubbo+SpringBoot 微服务Demo搭建
  2. GO方法与接口
  3. hive数据倾斜的解决办法
  4. Mac上刚安装的WebStorm或PHPStorm遇到SVN版本太旧的问题
  5. never下ioc
  6. spring cloud 系列第5篇 —— hystrix+turbine 服务的熔断与监控 (F版本)
  7. 通用shell函数库
  8. vux loadmore + axios 实现点击加载更多
  9. Ceph原理动画演示
  10. Linux下无法执行tree命令问题