(轉)C#中的Predicate 與Func


  Delegate至少0個參數,至多32個參數,可以無返回值,也可以指定返回值類型。這個是祖宗。
  Func可以接受0個至16個傳入參數,必須具有返回值。
  Action可以接受0個至16個傳入參數,無返回值。
  Predicate只能接受一個傳入參數,返回值為bool類型。

public delegate bool Predicate<in T>(T obj);  
public delegate TResult Func<in T, out TResult>(T arg);  
Func<T, bool> :表示有傳入T類型的參數,返回值為bool的委托
Predicate<T>:表示有傳入T類型的參數,返回值為bool的委托
static void Main(string[] args)  
{  
    Predicate<int> myPredicate = i => i > 10;  
    Func<int, bool> myFunc = i => i > 10;  
    List<int> list = new List<int>();  
    list.Add(5);  
    list.Add(9);  
    list.Add(20);  
    list.Add(30);  
    List<int> newList = list.FindAll(myPredicate);  
    List<int> newListFunc = list.Where(myFunc).ToList();  
    Console.ReadKey();  
} 
看到Predicate和Func接受的是完全相同的Lambada表達式,
而且執行結果newList和newListFunc完全相同。
 
http://blog.csdn.net/rye_grass/article/details/66041423  C#中的Predicate<T>與Func<T, bool>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM