C# | Delegado de predicado

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"));
    }
}
Producción:

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"));
    }
}
Producción:

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *