义乌网站建设哪家好,好的网站制作网站,网站注册流程和费用,比较好看的网站设计一、什么是委托#xff1f; 书本上是这样来定义委托的#xff1a; 委托是一种动态调用方法的类型#xff0c;属于引用型。委托是对方法的抽象和封装。委托对象实质上代表了方法的引用#xff08;即内存地址#xff09;。委托通常是委托某个方法来实现具体的功能。当我们调…一、什么是委托 书本上是这样来定义委托的 委托是一种动态调用方法的类型属于引用型。委托是对方法的抽象和封装。委托对象实质上代表了方法的引用即内存地址。委托通常是委托某个方法来实现具体的功能。当我们调用委托的时候委托包含的所有方法将被执行。虽然在定义委托时与方法有些相似但我们不能将其称为方法。 白话委托是这样的
委托就是可以把方法名作为参数来调用的方法生活中这样的场景很多比如点外卖
在没有外卖平台的时候我们都是拿着钱去买外卖钱就是变量通过现场交易返回我们想要的食物交易过程就是方法名
现在美团来了我们就不用去现场交易只需要把你的钱给美团美团帮你买好食物送到你家里去美团就是一个委托。
二、委托的声明 委托声明决定了可由该委托引用的方法。委托可指向一个与其具有相同标签的方法。 例如假设有一个委托 public delegate int MyDelegate (string s); 上面的委托可被用于引用任何一个带有一个单一的 string 参数的方法并返回一个 int 类型变量。 委托的声明是什么意思呢
你想要买外卖以前你都是拿着rmb去买的 现在美团来了你还得拿着rmb给美团他才会帮忙买到你想要的食物。
如果你不给他rmb给是美金是不行滴。
三、实例化委托Delegate 一旦声明了委托类型委托对象必须使用 new 关键字来创建且与一个特定的方法有关。当创建委托时传递到 new 语句的参数就像方法调用一样书写但是不带有参数。例如 public delegate void printString(string s); ... printString ps1 new printString(WriteToScreen); printString ps2 new printString(WriteToFile); using System;delegate int NumberChanger(int n);
namespace DelegateAppl
{class TestDelegate{static int num 10;public static int AddNum(int p){num p;return num;}public static int MultNum(int q){num * q;return num;}public static int getNum(){return num;}static void Main(string[] args){// 创建委托实例NumberChanger nc1 new NumberChanger(AddNum);NumberChanger nc2 new NumberChanger(MultNum);// 使用委托对象调用方法nc1(25);Console.WriteLine(Value of Num: {0}, getNum());nc2(5);Console.WriteLine(Value of Num: {0}, getNum());Console.ReadKey();}}
}
当上面的代码被编译和执行时它会产生下列结果 Value of Num: 35
Value of Num: 175