Como mencionado anteriormente, um delegate Predicate pode conter até 16 parâmetros utilizando generics.
                O uso das palavras reservadas ref e out, vistas nos conceitos de passagem por valor e
                referência em C# POO: Métodos, também podem ser utilizados.
            
            Sintaxe 1
            
public delegate bool Predicate<T1,T2,...,T16>(T1 obj1, T2 obj, TN objN)
            Sintaxe 2
            
Predicate<T1,T2,...,T16> nome_action = nome_metodo;
Predicate<T1,T2,...,T16> nome_action = new Predicate<T1,T2,...,T16>(nome_metodo);
            Exemplo 2
            
using System;
public class Program
{
    public static bool Par(int numero) //static Main
    {
        return numero%2 == 0;
    }
    public static void Main(string[] args)
    {
        Predicate<int> meuPredicate = Par;
        Console.WriteLine(meuPredicate(2));
    }
}
            Saída
            
True