zoukankan      html  css  js  c++  java
  • 代理方法keywordAction与Fun的使用

    代理是一种特殊的,指向某个方法模块所在的地址。一般来讲,那个方法模块,能够是一个普通的方法,很多其它的时候,是一团匿名的lamda表达式,即一个匿名方法。如今简单理解一下代理的简写方式,即Actionkeyword。

        class A
        {
            B b = new B();
    
            public delegate string Show(string result);
    
            public string Execute()
            {
                Show s = new Show(b.MyShow);
                string str = s.Invoke("ttt");
                return str;
            }
        }
    
        class B
        {
            public string MyShow(string s)
            {
                return s + ">>>>>>>>>";
            }
        }
    
        static void Main(string[] args)
        {
            A a = new A();
            a.Execute();
        }
    这样,使用A的时候,仅仅改变B中MyShow的代码,就能定制A中Execute的运行结果。具有相同功能的代码,我们用Action类型来完毕。
        class C
        {
    
            D d = new D();
            Action<string> action;
    
            public void Execute()
            {
                action = d.MyShow2;
                action.Invoke("ttt");
            }
        }
    
        class D
        {
            public void MyShow2(string s)
            {
                Console.WriteLine(s + ">>>>>>>>>");
            }
        }
    
        static void Main(string[] args)
        {
            A a = new A();
            a.Execute();
        }

    这段代码与上边的代码具有相同的效果。能够看出,从本质上讲,就是Action就是delegate的简化模式,就假设lamda表达式来简化匿名方法一样。当匿名方法必需要有返回值的时候,我们使用Fun类型来处理。用法基本上有Action相同,仅仅是对于參数,前几个是传入值,最后一个是返回值。

  • 相关阅读:
    DNS收集分析之host
    DNS收集分析fierce
    DNS收集分析dig
    DNS收集分析reverseraider
    DNS收集分析lbd
    DNS收集查询dnsrecon
    DNS收集分析dnsmap
    Preclassify
    OSPF Forwarding Address 引起的环路
    kali笔记
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/3872758.html
Copyright © 2011-2022 走看看