委托(delegate)是一种存储函数引用的类型。
委托的定义指定了一个返回类型和一个参数列表
定义了委托之后,就可以声明该委托类型的变量,接着就可以把一个返回类型跟参数列表跟委托一样的函数赋值给这个变量。
委托的使用分两步
- 定义
- 声明(变量)
-
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 委托的定义和声明 { //定义一个委托跟函数差不多,区别在于 //1、定义委托需要加上delegate关键字 //2、委托的定义不需要函数体 public delegate double MyDelegate (double param1,double param2); class Program { 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) { MyDelegate de;//利用我们定义的委托类型声明了一个新的变量 de = Multiply;//当我们给一个委托的变量赋值的时候,返回值跟参数列表必须一样,否则无法赋值 Console.WriteLine(de(2,34.1)); de = Divide; Console.WriteLine(de(34.1,2)); Console.ReadKey(); } } }
结构体,枚举的使用同上都分为定义和声明
整数类型 数组类型 字符串类型 都是直接声明变量的,因为类型的定义已经完成了(CLR中已经完成定义)