zoukankan      html  css  js  c++  java
  • C#委托 delegate

     public delegate string MyMethodDelegate(int myInt);
        public class MySimpleClass
        {
            public string MyStringMethod(int myInt)
            {
                if (myInt > 0) return "positive";
                if (myInt < 0) return "negative";
                return "Zero";
            }
            public string MySignMethod(int myInt)
            {
                if (myInt > 0) return "+";
                if (myInt < 0) return "-";
                return "";
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                MySimpleClass mc = new MySimpleClass();
                MyMethodDelegate mmd1 = new MyMethodDelegate(mc.MyStringMethod);
                MyMethodDelegate mmd2 = new MyMethodDelegate(mc.MySignMethod);
                Console.WriteLine("{0} is {1}; use sign {2}", 0, mmd1(0), mmd2(0));
                Console.WriteLine("{0} is {1}; use sign {2}", 6, mmd1(6), mmd2(6));
                Console.WriteLine("{0} is {1}; use sign {2}", -9, mmd1(-9), mmd2(-9));
                Console.ReadLine();
            }
        }

    在需要取得返回值的类里面,声明一个跟目标的方法一样的委托方法,参数以及返回值都相同,在使用以后,直接取得目标方法的返回值,而不用去目标类里面实现 然后在取得属性。

    就好比在自己家挖个坑,让别人家的长工来这个坑里干活,用的是他们家的锹,他们家的镐,生产出来的瓦片给自己用。用委托,不需要实例化对象类,不需要调用对象的方法,只要在自己的类中声明,调用一下,就OK了。

  • 相关阅读:
    odoo权限
    odoo开发bug记录
    odoo视图
    odoo13线上发布
    odoo开发环境搭建
    request
    urllib
    b站排行榜-爬虫
    DockerFile
    Docker基本操作
  • 原文地址:https://www.cnblogs.com/luxx/p/1712645.html
Copyright © 2011-2022 走看看