English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Предикат, как и 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 - это генерический делегат, который возвращает значение типа bool.
Делегат Predicate<int> означает делегат, который принимает параметр типа int и возвращает bool.
Делегат predicate имеет один параметр и возвращает значение bool.
Делегат predicate принимает один входной параметр и возвращает значение типа bool.
Анонимные методы и выражения Lambda можно назначить делегату predicate.