通俗的理解委托

Posted wshnzxj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通俗的理解委托相关的知识,希望对你有一定的参考价值。

一:什么是委托呢

我们来看看委托的定义

C#中的委托(Delegate) 类似于C或C++中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。

对于不熟悉的人来说,看着这个就是一脸懵逼,我当初就是这样,一个泛泛的概念很难让人理解和记住,我们先不讲概念,直接看代码理解

二:怎么使用委托

Step1:定义委托

//delegate 定义委托
public delegate void MyDelegate(string name);

Step2:实例化委托

我们进行委托的实例化有三种方式进行 ,分别是常规声明,匿名函数声明,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后面一一出文
喜欢的关注呦

 

以上是关于通俗的理解委托的主要内容,如果未能解决你的问题,请参考以下文章

@protocol(协议)和@delegate(代理)的个人理解 通俗易懂

【译】理解LSTM(通俗易懂版)

干货通俗理解自然语言处理中N-Gram模型

帮你理清 C# 委托事件ActionFunc

帮你理清 C# 委托事件ActionFunc

对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。 错误解决一例。(代码片段