Les interfaces génériques

Comme pour les listes, il serait intéressant de pouvoir effectuer une boucle foreach sur les éléments de notre type générique. Pour cela il suffit d’implémenter l’interface générique IEnumerable<T> :

foreach
public class ReportChangeList<T> : IReportChildrenChange,  
IEnumerable<T> where T : IReportChange 

Cette interface générique se comporte comme une interface classique, elle contient les signatures des membres requis pour son implémentation et ceux-ci peuvent utiliser la classe générique comme référence.

Ajoutez les membres GetEnumerator() et IEnumerable.GetEnumerator() suivants pour implémenter l’interface dans la classe générique ReportChangeList :

GetEnumerator
public IEnumerator<T> GetEnumerator() 
{ 
    for (int i = 0; i < this.children.Count; i++) 
    { 
        yield return this.children[i]; 
    } 
} 
IEnumerator IEnumerable.GetEnumerator() 
{ 
    return GetEnumerator(); 
} 

L’implémentation d’un énumérateur consiste à effectuer une boucle sur les éléments de la liste et à retourner chacun d’eux à l’appelant. Le mot-clé yield return permet de faire un retour à l’appelant avec la valeur...

Pour consulter la suite, découvrez le livre suivant :
couv_EI9C19VIS.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Les contraintes de type
Suivant
La création de méthodes génériques