Génériques dans le .NET Framework
Mise à jour : novembre 2007
Les génériques vous permettent d'adapter une méthode, une classe, une structure ou une interface au type de données précis sur lequel elle agit. Par exemple, au lieu d'utiliser la classe Hashtable, qui autorise des clés et de valeurs de n'importe quel type, vous pouvez utiliser la classe générique Dictionary<TKey, TValue> et spécifier le type autorisé pour la clé et le type autorisé pour la valeur. Les génériques offrent plusieurs avantages dont celui de pouvoir réutiliser le code et la sécurité de type.
Le .NET Framework fournit plusieurs classes de collections génériques, dans les espaces de noms System.Collections.Generic et System.Collections.ObjectModel. Les interfaces génériques destinées à implémenter le tri et les comparaisons d'égalité sont fournies dans l'espace de noms System ainsi que des types délégués génériques pour les gestionnaires d'événements, les conversions et les prédicats de recherche.
La prise en charge des génériques a été ajoutée à System.Reflection pour l'examen des types et des méthodes génériques, à System.Reflection.Emit pour l'émission d'assemblys dynamiques qui contiennent des types et des méthodes génériques et à System.CodeDom pour la génération de graphiques de code source qui incluent des génériques.
Visual Basic, C# et Visual C++ assurent la prise en charge complète de la définition et de l'utilisation de types génériques. Le Common Language Runtime fournit de nouveaux opcodes et préfixes pour prendre en charge les types génériques dans le code MSIL (Microsoft Intermediate Language).
Dans cette section
Vue d'ensemble des génériques dans le .NET Framework
Décrit les génériques, les fonctionnalités qu'ils apportent au .NET Framework ainsi que la façon dont ils sont exposés dans le Common Language Runtime.Collections génériques dans le .NET Framework
Décrit des classes de collections génériques et d'autres types génériques dans le .NET Framework.Délégués génériques pour la manipulation de tableaux et de listes
Décrit les délégués génériques pour les conversions, les prédicats de recherche et les actions à effectuer sur les éléments d'un tableau ou d'une collection.Interfaces génériques
Décrit les interfaces génériques qui fournissent des fonctionnalités communes à toutes les familles de types génériques.Avantages et limitations des génériques
Résume les avantages et les restrictions liés à l'utilisation de génériques.
Référence
System.Collections.Generic
Catalogue la plupart des types collection génériques fournis par le .NET Framework, et notamment les classes génériques List<T> et Dictionary<TKey, TValue>.System.Collections.ObjectModel
Catalogue les autres types collection génériques, tels que la classe générique ReadOnlyCollection<T>, utiles pour exposer des modèles d'objet aux utilisateurs de vos classes.OpCodes
De nouveaux opcodes et préfixes ont été ajoutés pour prendre en charge les génériques, et notamment Stelem, Ldelem, Unbox_Any, Constrained et Readonly.
Rubriques connexes
Types de collections couramment utilisés
Décrit brièvement les caractéristiques et les scénarios d'usage des types collection dans le .NET Framework, et notamment des types génériques.Quand utiliser les collections génériques
Décrit les règles générales visant à déterminer quand il convient d'utiliser des types collection génériques.Réflexion et types génériques
Explique comment utiliser la réflexion pour examiner des types et des méthodes génériques.Comment : définir un type générique avec émission de réflexion
Explique comment générer des assemblys dynamiques qui incluent des types et des méthodes génériques.Types génériques en Visual Basic
Décrit la fonctionnalité des génériques pour les utilisateurs de Visual Basic et propose des rubriques Comment expliquant comment utiliser et définir des types génériques.Introduction aux génériques (Guide de programmation C#)
Propose une vue d'ensemble de la définition et de l'utilisation des types génériques pour les utilisateurs C#.Overview of Generics in Visual C++
Décrit la fonctionnalité des génériques pour les utilisateurs C++, et notamment les différences entre génériques et modèles.