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了。

  • 相关阅读:
    转:【译】CSS3:clip-path详解
    转---JS 一定要放在 Body 的最底部么?聊聊浏览器的渲染机制
    转---30 分钟学会 Flex 布局
    转---单页面应用下的JS内存管理
    转---移动端 h5开发相关内容总结——CSS篇
    转---谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
    转---写一个网页进度loading
    转---内存空间详细图解
    转---前端跨域请求原理及实践
    简单记录常用git 命令
  • 原文地址:https://www.cnblogs.com/luxx/p/1712645.html
Copyright © 2011-2022 走看看