c# 3.0 : Surcharger une méthode d'extension (suite)
Après mon article
Comprendre les bases de Linq to Objets
et un post "
c# 3.0 : Surcharger les méthodes d'extension
", je me suis décidé à écrire un mini-article sur les surcharges.
http://www.techheadbrothers.com/Astuces.aspx/surcharger-methode-extension
Vous y découvrirez en particulier une astuce possible pour éviter d'effectuer un nouvel accès à la base de données via une requête Linq en couche de représentation sur une référence issue de la DAL pour laquelle on a employé Linq to SQL.
internal static class ExtensionLinq
{
internal static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source,
Func<TSource, TResult> selector)
{
IEnumerable<TSource> sourceEnum = source;
foreach (TSource s in sourceEnum)
yield return selector.Invoke(s);
}
}
En C# 3.0, l'emploi des méthodes d'extension demandent de la discipline.
Il en est de même avec l'emploi du mot clé "var".
UPDATE DU POST
La ligne en rouge dans le code ne sert à rien. Voir les commentaires pertinents de Flavien Charlon ci-dessous. Bravo pour avoir vu cela ! Il nous reste à comprendre la logique du compilateur c# 3.0 avec Linq To SQL lorsque que j'effectue la surcharge de la méthode d'extension Select.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :