閱讀936 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Predicate<T> 委托

Predicate<T> 委托:表示定義一組條件並確定指定對象是否符合這些條件的方法。

下麵的代碼示例使用帶有 Array.Find<T> 方法的 Predicate<T> 委托搜索 Point 結構的數組。如果 X 和 Y 字段的產品大於 100,000,則該代理所代表的方法 ProductGT10 將返回 true Find<T> 方法調用數組的每個元素的代理,從而在第一個滿足測試條件的點停止。

using System;
using System.Drawing;

public class Example
{
    public static void Main()
    {
        // Create an array of five Point structures.
        Point[] points = { new Point(100, 200), 
            new Point(150, 250), new Point(250, 375), 
            new Point(275, 395), new Point(295, 450) };

        // To find the first Point structure for which X times Y 
        // is greater than 100000, pass the array and a delegate
        // that represents the ProductGT10 method to the static 
        // Find method of the Array class. 
        Point first = Array.Find(points, ProductGT10);

        // Note that you do not need to create the delegate 
        // explicitly, or to specify the type parameter of the 
        // generic method, because the C# compiler has enough
        // context to determine that information for you.

        // Display the first structure found.
        Console.WriteLine("Found: X = {0}, Y = {1}", first.X, first.Y);
    }

    // This method implements the test condition for the Find
    // method.
    private static bool ProductGT10(Point p)
    {
        if (p.X * p.Y > 100000)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

/* This code example produces the following output:

Found: X = 275, Y = 395
 */
來自:MSDN

最後更新:2017-04-02 00:06:55

  上一篇:go Linux服務器數據庫(MySQL、ORACLE)簡單的異地備份方案
  下一篇:go 蘋果要求分享SkyDrive應用三成營收 微軟不給