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

C# Основные курсы

C# Дополнительные курсы

C# ООП (面向对象)

Предикат C#

Предикат, как и Func и Action, представляет собой делегат. Это метод, который определяет набор условий и определяет, соответствует ли заданный объект этим условиям. Этот делегат используется несколькими методами класса Array и List для поиска элементов в集合е. Метод предиката должен принимать один входной параметр и возвращать логическое значение true или false.

Определение предиката

Предикат определен в命名ном пространстве System, как показано ниже:

Подпись предиката:

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

Как и другие типы делегатов, предикат можно использовать с любым методом, анонимным методом или лямбда-выражением.

static bool IsUpperCase(string str)
{
    return str.Equals(str.ToUpper());
}
static void Main(string[] args)
{
    Предикат<string> isUpper = IsUpperCase;
    bool result = isUpper("hello world!!");
    Console.WriteLine(result);
}
Вывод:
false

Предикат и анонимный метод

Анонимный метод также можно присвоить типу предиката, как показано ниже.

static void Main(string[] args)
{
    Предикат<string> isUpper = delegate(string s) { return s.Equals(s.ToUpper()); };
    bool result = isUpper("hello world!!");
}

Предикат и лямбда-выражение

Лямбда-выражение также можно присвоить типу предиката, как показано ниже.

static void Main(string[] args)
{
    Предикат<string> isUpper = s => s.Equals(s.ToUpper());
    bool result = isUpper("hello world!!");
}

Инструкции по использованию делегата predicate

  • Делегат predicate - это генерический делегат, который возвращает значение типа bool.

  • Делегат Predicate<int> означает делегат, который принимает параметр типа int и возвращает bool.

  • Делегат predicate имеет один параметр и возвращает значение bool.

Важно запомнить

  1. Делегат predicate принимает один входной параметр и возвращает значение типа bool.

  2. Анонимные методы и выражения Lambda можно назначить делегату predicate.