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

  • 相关阅读:
    MyKTV项目总结
    TCP滑动窗口Sliding Window
    TCP时间戳选项Timestamp
    TCP窗口扩大选项Window Scale
    TCP最大报文段长度MSS
    TCP路径MTU发现
    TCP主动打开 之 第一次握手-发送SYN
    TCP层accept系统调用的实现分析
    Linux TCP套接字选项 之 SO_REUSEADDR && SO_REUSEPORT
    TCP层bind系统调用的实现分析
  • 原文地址:https://www.cnblogs.com/shadoll/p/14507166.html
Copyright © 2011-2022 走看看