zoukankan      html  css  js  c++  java
  • 系统泛型委托

    一、Action  封装一个方法,该方法只有一个参数并且不返回值

    public delegate void Action<in T>(T obj);

    image

    List<Dog> list = GetDogList();
          list.ForEach(new Action<Dog>(delegate(Dog d) { Console.WriteLine(d.Name); }));
          list.ForEach(delegate(Dog d) { Console.WriteLine(d.Name); });
          list.ForEach(d => { Console.WriteLine(d.Name); });
          list.ForEach(d => Console.WriteLine(d.Name));

    二、Predicate  表示定义一组条件并确定指定对象是否符合这些条件的方法。

    public delegate bool Predicate<in T>(T obj);

    image

    image

    list = list.FindAll(d => { return d.Age > 1; });

    list = list.FindAll(d => d.Age > 1);

    image

    三、Comparison  表示比较同一类型的两个对象的方法。

    // 返回结果: 
         //     一个有符号整数,指示 x 与 y 的相对值,如下表所示。 值 含义 小于 0 x 小于 y。 0 x 等于 y。 大于 0 x 大于 y。
         public delegate int Comparison<in T>(T x, T y);

    image

    list.Sort((x, y) => x.Age - y.Age);

    四、Func 

    public delegate TResult Func<in T, out TResult>(T arg);

    image

    IEnumerable<SmallDog> iList = list.Select<Dog, SmallDog>(new Func<Dog, SmallDog>(delegate(Dog d) { return new SmallDog { Name = d.Name }; }));
          IEnumerable<SmallDog> iList1 = list.Select(d => { return new SmallDog { Name = d.Name }; });
          var ilist2 = list.Select(d => new { Name = d.Name });

    image

    var ilist3 = list.Select(d => d.Name);

    image

    image

  • 相关阅读:
    WPF 如何画一颗心
    WPF 通过Border来画边框
    WPF 如何引入外部样式
    WPF 变量转换的实现
    WPF 动画显示控件
    wpf 悬浮窗口的实现
    WPF 如何绘制不规则按钮,并且有效点击范围也是不规则的
    WPF 变量绑定实现
    2016年终总结:从程序员到项目经理的转身
    使用FastReport打印二维码
  • 原文地址:https://www.cnblogs.com/dotnetmvc/p/3674776.html
Copyright © 2011-2022 走看看