Un delegado de predicado es un delegado de tipo genérico incorporado . Este delegado se define en el espacio de nombres del sistema . Funciona con aquellos métodos que contienen algún conjunto de criterios y determinan si el parámetro pasado cumple con los criterios dados o no. Este delegado toma solo una entrada y devuelve el valor en forma de verdadero o falso. Ahora, antes que nada, vemos cómo funcionan los delegados personalizados en esta situación. Como se muestra en el siguiente ejemplo.
Sintaxis:
public delegate bool Predicate <in P>(P obj);
Aquí, P es el tipo del objeto y obj es el objeto que se comparará con los criterios definidos dentro del método representado por el delegado de predicado.
Ejemplo:
// C# program to illustrate delegates using System; class GFG { // Declaring the delegate public delegate bool my_delegate(string mystring); // Method public static bool myfun(string mystring) { if (mystring.Length < 7) { return true; } else { return false; } } // Main method static public void Main() { // Creating object of my_delegate my_delegate obj = myfun; Console.WriteLine(obj("Hello")); } }
True
Ahora, usamos el mismo programa anterior con el delegado de predicado como se muestra a continuación.
Ejemplo: en el siguiente ejemplo, usamos un delegado de predicado en lugar de un delegado personalizado. Reduce el tamaño del código y hace que el programa sea más legible. Aquí, el delegado de predicado contiene un solo parámetro de entrada y devuelve la salida en tipo booleano. Y aquí, asignamos directamente un método myfun al delegado de Predicate.
// C# program to illustrate Predicate delegates using System; class GFG { // Method public static bool myfun(string mystring) { if (mystring.Length < 7) { return true; } else { return false; } } // Main method static public void Main() { // Using predicate delegate // here, this delegate takes // only one parameter Predicate<string> val = myfun; Console.WriteLine(val("GeeksforGeeks")); } }
False
Puntos importantes:
- También puede usar un delegado de Predicado con un método anónimo como se muestra en el siguiente ejemplo:
Ejemplo:
Predicate<
string
> val =
delegate
(
string
str)
{
if
(mystring.Length < 7)
{
return
true
;
}
else
{
return
false
;
};
val(
"Geeks"
);
- También puede usar un delegado de predicado con las expresiones lambda como se muestra en el siguiente ejemplo:
Ejemplo:
Predicate<
string
> val = str = > str.Equals(str.ToLower());
val(
"Geeks"
);
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA