English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
PredicateはFuncやActionが表すようなデリゲートです。一連の条件を定義し、指定されたオブジェクトがこれらの条件に一致するかどうかを決定するメソッドを表します。このデリゲートはArrayやListクラスのいくつかのメソッドによって使用され、集合内の要素を検索するために使用されます。Predicateデリゲートメソッドは入力パラメータを1つ取り、布尔値trueまたはfalseを返す必要があります。
以下のようにSystemで定義された名前空間にPredicateデリゲートがあります:
Predicateのシグネチャ:
public delegate bool Predicate<in T>(T obj);
他のデリゲート型と同様に、Predicateデリゲートも任何メソッド、匿名メソッド、またはlambda表現式と一緒に使用できます。
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); }
false
匿名メソッドもPredicateデリゲート型に割り当てることができます。以下のように。
static void Main(string[] args) { Predicate<string> isUpper = delegate(string s) { return s.Equals(s.ToUpper());}; bool result = isUpper("hello world!!"); }
lambda表現式もPredicateデリゲート型に割り当てることができます。以下のように。
static void Main(string[] args) { Predicate<string> isUpper = s => s.Equals(s.ToUpper()); bool result = isUpper("hello world!!"); }
predicateデリゲートはbool型の返り値を持つジェネリクスデリゲートです。
Predicate<int>デリゲートはintの引数を取り、bool値を返すデリゲートです。
predicateデリゲートは1つの引数しか持たず、常にbool値を返します。
predicateデリゲートは入力引数1つと布尔値の返り値を持っています。
匿名メソッドとLambda式をpredicateデリゲートに割り当てることができます。