zoukankan      html  css  js  c++  java
  • c#中内置委托

    一、Action泛型委托

    和之前委托最大区别在于不用定义委托,直接实例化委托(申明就可以),泛型其实就是选择数据类型,进行使得程序更加安全,并且也实现了委托的重载,最多选择16个参数。

    namespace 自定义委托
    {
        class Program
        {
            Action<string> actHandler;
    
            public Program()
            {
                actHandler += Test1;
                actHandler += Test2;
            }
    
            public void Test1(string str)
            {
                Console.WriteLine("I am Test1 "+str);
            }
    
            public void Test2(string str)
            {
                Console.WriteLine("I am Test2 "+str);
            }
    
            public void Display()
            {
                actHandler("nice");
            }
    
            static void Main(string[] args)
            {
                Program obj = new Program();
                obj.Display();
            }
        }
    }

    委托还有一个好处是,当执行委托时,委托中的一个变量发生变化,会引起所有注册方法的变化,就是我们所说额观察者模式。

    Func<T>表示注册的方法有返回值,返回类型是<>最后一个参数是返回类型,而Action<T>表示注册的无返回值,其实都类似。

    Predicate<T>表示注册的方法返回值为bool类型,并且只有一个返回值,是Func<T>的一个特例。 

  • 相关阅读:
    扩展:13-SpringBoot-尚硅谷-基础入门
    Java-JDK动态代理(AOP)使用及实现原理分析
    程序员常用算法合集
    数据结构-图
    多叉树的基本概念
    平衡二叉树(AVL树)
    TP5返回多维数组
    使用HttpSession实现验证码
    thinkphp6使用
    无法链接远程数据库
  • 原文地址:https://www.cnblogs.com/linybo/p/13339586.html
Copyright © 2011-2022 走看看