标签:概念 声明 lambda表达式 delegate ++ 方式 stat 赋值 str
我们来看看委托的定义
C#中的委托(Delegate) 类似于C或C++中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。
对于不熟悉的人来说,看着这个就是一脸懵逼,我当初就是这样,一个泛泛的概念很难让人理解和记住,我们先不讲概念,直接看代码理解
//delegate 定义委托
public delegate void MyDelegate(string name);
我们进行委托的实例化有三种方式进行 ,分别是常规声明,匿名函数声明,lambda表达式声明
//定义传入委托的方
//我们定义的方法要与我们定义的委托有相同的返回值类型和参数列表 public static void Function(string name) { Console.WriteLine($"{name}是传入委托的Name"); }
static void Main(string[] args)
{
//常规声明委托
MyDelegate myDelegate = Function; myDelegate("悟空"); //匿名函数声明 MyDelegate myDelegate2 = delegate (string name) { Console.WriteLine($"{name}是传入委托的Name"); }; myDelegate2("八戒"); //lambda优美的声明 MyDelegate myDelegate3 = x => Console.WriteLine($"{x}是传入委托的Name"); myDelegate3("沙僧");
}
执行结果:
经过上面的代码我们知道委托定义和声明,可以说是将方法当成一个参数传入给另外一个方法,也可以将委托当做成一个命令,委托里面的参数就是要执行这命令的具体动作
委托顾名思义就是将一个动作交给另外一方去完成 举个例子,假如小三肚子饿了,让小二给他去买吃的,然后小二给他定了一个外卖
我们将其拆解一下
小三肚子饿了 我们可以看做成一个委托的定义
然后小三给小二一个吩咐说自己饿了,给自己定个外卖 ,吩咐下命令的过程可以看作是委托的实例化
而小二接到吩咐后就跑去订外卖的这个动作就是我们上面给委托赋值那个方法
MyDelegate myDelegate = Function;
水平有限,可能我举的例子不太对,大家海涵,个人理解就是这么个意思,我觉得举示例是最实在的
委托后面还有多播,事件和委托,Action,Func后面一一出文
喜欢的关注呦
标签:概念 声明 lambda表达式 delegate ++ 方式 stat 赋值 str
原文地址:https://www.cnblogs.com/wshnzxj/p/12629239.html