您的位置:首页 > 其它

Predicate<T> 委托

2012-12-11 15:47 302 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: