C#读书笔记----关于C#中的委托函数
来源:互联网 发布:淘宝上ke t 编辑:程序博客网 时间:2024/06/18 12:55
(自我感觉C#中的委托函数就是C++中的函数指针的变化)
委托是一种可以把引用存储为函数的类型。
委托最终要的用途是与事件处理相关。
委托的声明非常类似于函数,但不带函数体,并且使用delegate关键字。委托的声明指定了一个返回类型和一个参数列表。在定义了委托后,就可以声明该委托类型的变量。接着把这个变量初始化为与委托有相同返回类型和参数列表的函数引用。之后就可以使用委托变量调用这个函数,就像该变量是一个函数一样。(就是C++中的函数指针嘛)
也可以把委托变量作为参数传递给一个函数,这样,该函数就可以使用委托调用它引用的任何函数,而且在运行之前无需知道调用的是哪个函数。示例如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Ch06Ex05{ 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 ExecuteFunction(ProcessDelegate process) { process(2, 3); } 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);//委托变量赋值 //process = Multiply; else process = new ProcessDelegate(Divide);//委托变量赋值 //process = Divide; Console.WriteLine("Result: {0}", process(param1, param2));//委托被看做函数名 ExecuteFunction( process );//委托被用作函数的参数 Console.ReadKey(); } }}
- C#读书笔记----关于C#中的委托函数
- 关于 C# 委托、事件
- C#关于委托
- 关于c#的委托
- 关于C#的委托
- c#中函数委托
- C#函数委托类型
- C#编程.函数.委托
- C# 匿名函数委托
- C# 函数与委托
- C#中的委托
- C# 中的委托
- C#中的委托
- c#中的委托!!!!
- c#中的委托
- [原创]c#中的委托
- 浅析C#中的委托
- C# 中的委托
- apche-mina 之 过滤器
- winice6.0 GPRS拨号打包到内核
- windows通过vnc远程桌面centos
- RIB表与FIB表、ARP表与FDB表
- UIDevice uniqueGlobalDeviceIdentifier(百度地图API的那些事)
- C#读书笔记----关于C#中的委托函数
- [读书笔记]设计原本[The Design of Design]
- CCEditBox使用之准备篇
- BackgroundWorker 摘录
- **.exe : fatal error LNK1120: 1 个无法解析的外部命令
- 6.0RMB MP3所看到的……
- android -上传文件到服务器
- 南阳理工ACM 153 king VS king
- 百度地图api的引用中应该注意的问题