泛型委托

<1>Predicate泛型委托

// 摘要:
          //     表示定义一组条件并确定指定对象是否符合这些条件的方法。
          //
          // 参数:
          //   obj:
          //     要按照由此委托表示的方法中定义的条件进行比较的对象。
          //
          // 类型参数:
          //   T:
          //     要比较的对象的类型。
          //
          // 返回结果:
          //     如果 obj 符合由此委托表示的方法中定义的条件,则为 true;否则为 false。
          public delegate bool Predicate<in T>(T obj);

  需要传入一个T类型的参数,并且需要返回一个bool类型的返回值

 

<2>Action泛型委托

    // 摘要: 
    //     封装一个方法,该方法只有一个参数并且不返回值。
    //
    // 参数: 
    //   obj:
    //     此委托封装的方法的参数。
    //
    // 类型参数: 
    //   T:
    //     此委托封装的方法的参数类型。
    public delegate void Action<in T>(T obj);

    可以有0个到16个输入参数,输入参数的类型是不确定的,但不能有返回值

<3>Func泛型委托

    // 摘要: 
    //     封装一个不具有参数但却返回 TResult 参数指定的类型值的方法。
    //
    // 类型参数: 
    //   TResult:
    //     此委托封装的方法的返回值类型。
    //
    // 返回结果: 
    //     此委托封装的方法的返回值。
    [TypeForwardedFrom("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]
    public delegate TResult Func<out TResult>();

    0到16个输入参数,参数类型由使用者确定,它规定要有一个返回值,返回值的类型也由使用者确定

    参数列表中的最后一个泛型类型是方法的返回值类型

posted on 2016-03-17 09:43  雯大侠  阅读(245)  评论(0编辑  收藏  举报

导航