Delegados genéricos — RexDac Academy

RexDac AcademyNotas técnicas · Ayuda tener algunos conocimientos previos
0%Notas publicadas leídas · en este dispositivo

Nivel 6 — Genéricos y delegados

Delegados genéricos

Notas originales de SunDiaL · Ver fuente en inglés

Por supuesto, declarar tipos de delegado a mano una y otra vez es tedioso y, en realidad, innecesario. Con todas las herramientas vistas hasta ahora, lo que necesitas es crear un buen tipo de delegado genérico. Y eso es precisamente lo que el framework .Net proporciona ahora desde el principio.

Action

Action es un tipo de delegado genérico que representa una función que devuelve void. Admite hasta unos ocho parámetros, especificados mediante la sintaxis <>.

public void Main()
{
	Action<string> log = Console.WriteLine;
	log("Hello world");
}

Function<>

Func es igual que Action, salvo que devuelve un valor. También admite hasta unos ocho parámetros, más uno para la salida.

public void Main()
{
	Func<int, string> conv = Convert.ToString;
	string result = conv(5); //"5"
}

Predicate<>

Una forma abreviada de un Func<> que devuelve bool. Básicamente, una condición.

public bool IsPositive(int x)
{
	return x>=0;
}

public void Main()
{
	Preticate<int> condition = IsPositive;
	condition(5); //true
}