English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# Predicate-Delegat

Predicate ist wie Func und Action, die Delegation darstellen. Es stellt eine Methode dar, die eine Gruppe von Bedingungen definiert und bestimmt, ob ein bestimmtes Objekt diesen Bedingungen entspricht. Dieser Delegat wird von einigen Methoden der Array- und List-Klassen verwendet, um Elemente in Sammlungen zu suchen. Die Predicate-Delegat-Methode muss einen Eingangsparameter akzeptieren und einen Boolean-Wert true oder false zurückgeben.

Definition des Predicate-Delegaten

Der Predicate-Delegat ist im Namespace System definiert, wie folgt:

Predicate-Signatur:

public delegate bool Predicate<in T>(T obj);

Wie andere Delegat-Typen können Predicate-Delegate auch mit jedem Methoden, anonymen Methoden oder Lambda-Ausdrücken verwendet werden.

static bool IsUpperCase(string str)
{
    return str.Equals(str.ToUpper());
}
static void Main(string[] args)
{
    Predicate<string> isUpper = IsUpperCase;
    bool result = isUpper("hello world!!");
    Console.WriteLine(result);
}
Ausgabe:
false

Predicate-Delegat und anonyme Methode

Anonyme Methoden können auch zugewiesen werden, wie im Folgenden gezeigt.

static void Main(string[] args)
{
    Predicate<string> isUpper = delegate(string s) { return s.Equals(s.ToUpper()); };
    bool result = isUpper("hello world!!");
}

Predicate-Delegat und Lambda-Ausdruck

Lambda-Ausdrücke können auch zugewiesen werden, wie im Folgenden gezeigt.

static void Main(string[] args)
{
    Predicate<string> isUpper = s => s.Equals(s.ToUpper());
    bool result = isUpper("hello world!!");
}

Anleitung zur Verwendung von Predicate-Delegat

  • Predicate-Delegat ist ein generischer Delegat, der bool-Werte zurückgibt

  • Predicate<int> Delegat bedeutet, dass der übergebene Parameter ein int ist und ein bool-Wert zurückgibt

  • Predicate-Delegat haben genau einen Parameter und geben immer einen bool-Wert zurück

Zu beachtende Punkte

  1. Die predicate-Delegat nehmen einen Eingangsparameter und einen bool-Wert zurück.

  2. Man kann anonyme Methoden und Lambda-Ausdrücke einer predicate-Delegat zuweisen.