Je constate une utilisation croissante des types de délégués proposés dans l'espace de nom System ( Action<T>
; Predicate<T>
etc). Comme il s'agit de délégués, je crois comprendre qu'ils doivent être utilisés là où nous avons traditionnellement utilisé des délégués dans le passé (appels asynchrones, démarrage de threads, gestion d'événements, etc.) S'agit-il d'une simple préférence ou est-il considéré comme une pratique d'utiliser ces types de délégués dans des scénarios tels que ceux présentés ci-dessous, plutôt que d'utiliser des appels à des méthodes que nous avons déclarées (ou des méthodes anonymes) :
public void MyMethod()
{
Action<string> action = delegate(string userName
{
try
{
XmlDocument profile = DataHelper.GetProfile(userName);
UpdateMember(profile);
}
catch (Exception exception)
{
if (_log.IsErrorEnabled) _log.ErrorFormat(exception.Message);
throw (exception);
}
};
GetUsers().ForEach(action);
}
Au début, je trouvais le code moins intuitif à suivre que l'utilisation de méthodes déclarées ou anonymes. Je commence à coder de cette façon, et je me demande quelle est la vue à cet égard. L'exemple ci-dessus est tout dans une méthode. Est-ce une surutilisation des délégués ?