浅谈对C#委托的理解

关于委托,一直困扰我挺久的,第一是在项目中不知道怎么去用,第二就是不是完全理解委托真正的用处,第三对于委托的用法也不是很熟悉。

今天就来记录一下对从中对于委托的理解吧!

委托定义:委托是一个对象,它知道如何去调用一个方法

委托:委托类型、委托实例

委托类型:定义了委托的实例可以调用哪种类型的方法(返回值类型、参数类型),就是委托的类型定义了方法的返回类型和参数

在写委托之前,首先要明确是三个步骤(俗称委托三部曲):

  1. 定义委托
  2. 实例委托
  3. 赋值委托

至于为什么要进行委托,作用何在?

那就是解耦,防止程序卡死之类的。如果这里不借助委托来进行,Main入口里面直接调用Com方法也是可以的,只不过通过委托,达到了解耦的作用

 class Program
    {
        delegate int Transform(int x);  //定义委托

        static int Com(int x)=>x*x;    //返回类型,参数类型与委托一致,说明可以通过委托调用此方法
        static void Main(string[] args)
        {
              Transform t=new Transform(Com);  //实例化委托
              int result= t(3);  //赋值委托
              Console.WriteLine(result);      // result:9
        }
    }

实际上在赋值委托中进行了简写,实际上是通过Invoke去赋值给委托

int result=t.Invoke(3)

猜你喜欢

转载自www.cnblogs.com/hcyesdo/p/13096731.html