什么是委托?
如果我们要把方法当做参数来传递的话,就要用到委托。
简单的来说委托是一个类型,这个类型可以赋值一个方法的引用。
在C#中使用一个类分两个阶段,首选定义这个类,告诉编译器这个类由什么字段和方法组成的,然后使用这个类实例化对象。
在我们声明委托的时候,也需要经历这两个阶段,首先定义委托,告诉编译器我们这个委托可以指向哪些类型的方法,然后,创建该委托的实例。
定义委托的语法如下:
delegate void intMethodInvoker(int x);
定义了一个委托叫做intMethodInvoker,这个委托可以指向什么类型的方法呢?
这个方法要带有一个int类型的参数,并且方法的返回值是void的。
定义一个委托要定义方法的参数和返回值,使用关键字delegate定义。
定义委托的其它案例:
delegate double TwoLongOp(long first,long second);
delegate string GetAString();
using System;
namespace _073_delegate
{
class Program
{
private delegate string GetAString();
static void Main(string[] args)
{
Console.WriteLine("2022有你在程序才更有意思,委托");
int x = 40;
//使用委托类型创建实例
//Rex指向了x中的ToString方法
GetAString Rex = new GetAString(x.ToString);
//通过委托实例去调用x中的ToString方法
string NewRex = Rex();
//通过委托类型是调用一个方法,跟直接调用这个方法作用是一样的
Console.WriteLine(NewRex);
Console.ReadKey();
}
}
}
三、程序执行结果