zoukankan      html  css  js  c++  java
  • C# 委托的学习

        delegate int GetCalculatedValueDelegate(int x, int y);    //定义是个委托实际上就是抽象一类  参数列表形式和返回值相同的函数AddCalculator,SubCalculator这两个该函数的参数形式和返回值的类型就是。
          
        static int AddCalculator(int x, int y)   
        {   
            return x + y;   
        }   
          
        static int SubCalculator(int x, int y)   
        {   
            return x - y;   
        }   
          
        static int Calculator(GetCalculatedValueDelegate del, int x, int y)   //定义一个函数 传入三个参数  第一个参数的类型是一个委托  也就是说委托是一个类型。
        {   
            return del(x, y);  
        }   
          
        static void Main(string[] args)   
        {   
            Console.WriteLine(Calculator(AddCalculator, 10, 20));   
        }   

    在上面的例子中,Calculator函数的第一个参数就是一个委托。事实上,Calculator对x和y将会做什么处理,它本身并不知道,如何处理x和y由GetCalculatedValueDelegate来决定。那么在Main方法里,我们将AddCalculator方法作为参数传递给Calculator,表示让Calculator用AddCalculator的逻辑去处理x和y。这也很形象:Calculator说:“我不知道要怎么处理x和y,让del去处理好了!”于是就把x和y扔给了del。

    lamada表达式的应用

    n=>n%2==0;

    等价于

    delegate(int n){ return n%2==0;}

  • 相关阅读:
    java学习多线程之创建多线程一
    java学习之线程
    ios开发系统地图知识
    Swift3.0变化分享
    最新友盟6.1.1集成遇到的坑,自定义分享界面实现(跳转控制器做分享)
    IOS开发遇到(null)与<null>轻松处理
    友盟分享实现
    iOS 判断网络连接状态的几种方法
    GCD总结
    iOS视频边下边播--缓存播放数据流
  • 原文地址:https://www.cnblogs.com/c-x-a/p/5959745.html
Copyright © 2011-2022 走看看