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)
  • 相关阅读:
    JQuery
    CSS
    函数装饰器
    函数
    模块和运算符
    前端编程基础
    MySQL优化指南-大表优化思路
    Linux命令find讲解
    LeetCode每日题解(0324)
    Kmeans算法的经典优化——mini-batch和Kmeans++
  • 原文地址:https://www.cnblogs.com/hcyesdo/p/13096731.html
Copyright © 2011-2022 走看看