zoukankan      html  css  js  c++  java
  • 浅谈对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)
  • 相关阅读:
    SGU 271 Book Pile (双端队列)
    POJ 3110 Jenny's First Exam (贪心)
    HDU 4310 Hero (贪心)
    ZOJ 2132 The Most Frequent Number (贪心)
    POJ 3388 Japanese Puzzle (二分)
    UVaLive 4628 Jack's socks (贪心)
    POJ 2433 Landscaping (贪心)
    CodeForces 946D Timetable (DP)
    Android Studio教程从入门到精通
    Android Tips – 填坑手册
  • 原文地址:https://www.cnblogs.com/hcyesdo/p/13096731.html
Copyright © 2011-2022 走看看