zoukankan      html  css  js  c++  java
  • 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.如果委托的方法带返回值,那么最终得到的返回值只有委托最后一个关联方法的返回值。

  • 相关阅读:
    动态改变Spring定时任务执行频率
    tomcat
    liunx命令
    idea 使用笔记
    redis 笔记
    学习笔记 Optional
    JPA Example 基本使用使用实例
    面试经验总结
    基于LAMP实现后台活动发布和前端扫码签到系统
    XV6源代码阅读-文件系统
  • 原文地址:https://www.cnblogs.com/shadoll/p/14507166.html
Copyright © 2011-2022 走看看