que tienen un método C#, que acepta un predicado <Foo> y devuelve una lista de artículos a juego ...delegado resultados
public static List<Foo> FindAll(Predicate<Foo> filter)
{
...
}
El filtro será a menudo una de un conjunto común ...
public static class FooPredicates
{
public static readonly Predicate<Foo> IsEligible = (foo => ...)
...
}
... pero puede ser un delegado anónimo.
Ahora me gustaría tener este método en caché de sus resultados en la caché de ASP.NET, por lo que las llamadas repetidas con el mismo delegado solo devuelven el resultado en caché. Para esto, necesito crear una clave de caché del delegado. ¿Delegate.GetHashCode() producirá resultados razonables para este propósito? ¿Hay algún otro miembro del Delegado que deba ver? ¿Lo harías de otra manera?
He respondido a continuación con algunas pruebas de delegado. Iguales. Probablemente añadiré más el lunes cuando trate de usar las ideas de verdad. – stevemegson