Exportieren (0) Drucken
Alle erweitern
Erweitern Minimieren

Predicate (generischer Delegat)

Hinweis: Dieser Delegat ist neu in .NET Framework, Version 2.0.

Stellt die Methode dar, die einen Satz von Kriterien definiert und bestimmt, ob das angegebene Objekt jene Kriterien erfüllt.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

public delegate bool Predicate<T> (
	T obj
)
J# unterstützt die Verwendung von generischen Typen und Methoden, aber nicht die Deklaration von neuen generischen Typen oder Methoden.
JScript unterstützt keine generischen Typen oder Methoden.

Typparameter

T

Der Typ des zu vergleichenden Objekts.

Parameter

obj

Das Objekt, das mit den Kriterien verglichen werden soll, die innerhalb der durch diesen Delegaten dargestellten Methode definiert sind.

Rückgabewert

true, wenn obj die innerhalb der durch diesen Delegaten dargestellten Methode definierten Kriterien erfüllt, andernfalls false.

Dieser Delegat wird von mehreren Methoden der Array-Klassen und der List-Klassen verwendet, um nach Elementen in der Auflistung zu suchen.

Im folgenden Codebeispiel wird ein Predicate-Delegat mit der Array.Find-Methode verwendet, um ein Array der Point-Strukturen zu suchen. Die vom Delegaten dargestellte Methode, ProductGT10, gibt true zurück, wenn das Produkt aus den Feldern X und Y größer als 100.000 ist. Die Find-Methode ruft den Delegaten für jedes Element des Arrays auf und hält am ersten Punkt an, der die Testbedingung erfüllt.

HinweisHinweis

Benutzer von Visual Basic und C# müssen den Delegaten nicht explizit erstellen und das Typargument der generischen Methode nicht angeben. Die Compiler bestimmen die notwendigen Typen von den angegebenen Methodenargumenten.

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 Shared 
        // 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
 */

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0

.NET Compact Framework

Unterstützt in: 2.0
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft