• C# delegate委托的用法


    一.前言

      delegate的意思就是委托。简单来说,在C#中delegate就是一个用来引用方法的类型,创建了委托后,在委托里添加方法的指向,就可以用委托来调用添加到委托里的方法。

     二.用法

    1.一般委托

    //定义委托类型
    public delegate string Attack(int point);
    public class Demo
    {
        public string Fire(int point)
        {
            return "火属性伤害:" + point + "";
        }
        public string Ice(int point)
        {
            return "冰属性伤害:" + point + "";
        }
    }
    
    public class Program
    {
        //调用
        public static void Main(string[] args)
        {
            //声明委托变量
            Attack attack;
    
            Demo demo = new Demo();
    
            //初始化委托变量,将方法和委托关联
            attack = new Attack(demo.Fire);
            //向委托添加方法
            attack += demo.Ice;
            //向委托减方法
            //attack -= demo.Ice;
            //调用委托
            string result = attack(100);
            Console.WriteLine(result);
        }
    
    }

    2.匿名委托

    //定义委托类型
    public delegate string Attack(int point);
    
    public class Program
    {
        //调用
        public static void Main(string[] args)
        {
            //声明委托变量
            Attack attack = delegate (int point)
            {
                return "属性伤害:" + point + "";
            };
            //调用委托
            string result = attack(100);
            Console.WriteLine(result);
        }
    }

      匿名委托只能关联一个方法,好处在于不用专门定义一个委托函数来传递方法。

    三.总结

      1.一个委托可以关联多个方法,调用一次委托便可以执行多个方法。

      2.如果委托的方法带返回值,那么最终得到的返回值只有委托最后一个关联方法的返回值。

  • 相关阅读:
    Jenkins+ansible+Gitlab集成环境搭建
    Jenkins 和常用工具集成
    Jenkins 安装部署及应用
    ansible 及相关应用
    gitlab 快速安装
    [持续交付实践] 交付流水线设计:基于测试脚本的线上拨测监控系统
    gitlab CICD
    Nginx判断UserAgent添加referer
    Nginx判断变量的配置
    golang 入门之环境搭建
  • 原文地址:https://www.cnblogs.com/shadoll/p/14507166.html
Copyright © 2020-2023  润新知