組み込みのジェネリック型デリゲートは、名前空間システムの下で定義される C# の述語デリゲートです。名前空間と特定の条件セットを含むメソッドは、述語デリゲートと連携して、渡されたパラメータが指定された条件を満たすかどうかを判断できます。この条件では 1 つの入力のみが取得され、true または false の値と述語デリゲートが返されます。他のデリゲートである Func デリゲートおよび Action デリゲートと同じです。
構文:
public delegate bool Predicate <in P>(P obj);
オブジェクト タイプは P で表され、obj はメソッド内で定義され、述語デリゲートで表される基準を比較するオブジェクトです。
言及されている例を以下に示します:
プログラム内で述語デリゲートを使用して、パラメーターとして渡された指定された文字列が大文字であるかどうかを確認する C# プログラム。
コード:
using System; //a namespace called program is defined namespace program { //a class called check is defined public class check { //a Boolean method is defined to check if the given string is written in capital letters or not. If written in capital letters, true is returned else False is returned. static bool IsUC(string stri) { return stri.Equals(stri.ToUpper()); } //main method is called static void Main(string[] args) { //a predicate delegate is defined with object type as string and IsUC is an object which compares the criteria that is defined within a method and is represented by predicate delegate. Predicate<string> isU = IsUC; //The result of the predicate delegate is stored in a variable called res bool res = isU("welcome to c#"); //the result is displayed Console.WriteLine(res); } } }
出力:
説明:
プログラム内で述語デリゲートを使用して、指定された文字列の長さが指定された値より小さいかどうかを確認する C# プログラム。
コード:
using System; //a class called program is defined class program { // a predicate delegate is defined with object type as string public delegate bool my_del(string stri); // a method is defined inside a predicate delegate by passing the object as parameter to check if the length of the given string is less than a specified value. If less than the given specified value, true is returned else false is returned public static bool fun(string stri) { if (stri.Length < 5) { return true; } else { return false; } } //Main method is called static public void Main() { // a predicate delegate is defined with object type as string and fun is an object which compares the criteria that is defined within a method and is represented by predicate delegate. my_del obj = fun; //The string to be passed as a parameter to predicate delegate is written here Console.WriteLine(obj("Shobha")); } }
出力:
説明:
C# 述語の利点を以下に示します。
以上がC# 述語の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。