Si te entiendo correctamente, estás preguntando si puedes hacer referencia a un método genérico desde un método anónimo.
La respuesta es sí.
Por ejemplo, supongamos que quiere un Func
que devuelve los elementos de un objeto IEnumerable<int>
en orden ordenado (precisamente como OrderBy<int, int>
). Usted puede hacer esto:
Func<IEnumerable<int>, Func<int, int>, IOrderedEnumerable<int>> orderByFunc =
System.Linq.Enumerable.OrderBy<int, int>;
Posteriormente, se podría utilizar este Func
al igual que cualquier otra:
int[] ints = new int[] { 1, 3, 5, 4, 7, 2, 6, 9, 8 };
// here you're really calling OrderBy<int, int> --
// you've just stored its address in a variable of type Func<...>
foreach (int i in orderByFunc(ints, x => x))
Console.WriteLine(i);
Salida:
1
2
3
4
5
6
7
8
9
Por otro lado, si estás preguntando si es posible crear un "método anónimo genérico", como este:
Func<T> getDefault<T> =() => default(T);
Luego depende de su contexto. Esto se puede hacer desde un contexto en el que T
ya está declarado como un parámetro de tipo genérico, es decir, dentro de una clase genérica o método genérico. (Véase la respuesta de Freddy Ríos.) Fuera de ese contexto, desafortunadamente, es ilegal.
¿puede publicar una muestra de cómo piensa utilizarlo? Creo que no está exactamente claro qué quieres lograr con la descripción. – eglasius