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