Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Type.GetNestedTypes méthode (BindingFlags)

 

En cas de substitution dans une classe dérivée, recherche les types imbriqués dans le Type actuel, à l'aide des contraintes de liaison spécifiées.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

public abstract Type[] GetNestedTypes(
	BindingFlags bindingAttr
)

Paramètres

bindingAttr
Type: System.Reflection.BindingFlags

Masque de bits constitué d'un ou de plusieurs BindingFlags spécifiant le mode d'exécution de la recherche.

ou

Zéro, pour retourner null.

Valeur de retour

Type: System.Type[]

Tableau d'objets Type représentant tous les types imbriqués dans le Type actuel qui correspondent aux contraintes de liaison spécifiées (la recherche n'est pas récursive), ou tableau vide de type Type si aucun type imbriqué correspondant aux contraintes de liaison n'est trouvé.

La recherche pour les types imbriqués n’est pas récursive.

Le GetNestedTypes méthode ne retourne pas les types dans un ordre particulier, tel qu’alphabétique ou l’ordre de déclaration. Votre code ne doit pas dépendent l’ordre dans lequel les types sont retournés, car cet ordre varie.

Les éléments suivants BindingFlags filtre indicateurs peuvent être utilisés pour définir ce qui est imbriqué types à inclure dans la recherche :

Cette méthode retourne uniquement les types imbriqués du type actuel. Il ne recherche pas les classes de base du type actuel. Pour rechercher des types qui sont imbriqués dans les classes de base, vous devez parcourir la hiérarchie d’héritage, en appelant GetNestedTypes à chaque niveau.

BindingFlags.Instanceet BindingFlags.Static sont ignorés.

Appel de cette méthode avec uniquement le BindingFlags.Public indicateur ou uniquement les BindingFlags.NonPublic retournera types l’imbriqués spécifiés et ne nécessitent pas de tous les autres indicateurs.

Pour plus d'informations, voir System.Reflection.BindingFlags.

Si le courant Type représente un paramètre de type dans la définition d’un type générique ou de méthode générique, cette méthode recherche les types imbriqués de la contrainte de classe.

Si un type imbriqué est générique, cette méthode retourne sa définition de type générique. Cela est vrai même si le type générique englobant est un type construit fermé.

System_CAPS_noteRemarque

Si le courant Type représente un type générique défini en c#, Visual Basic ou C++, ses types imbriqués sont tous génériques même s’ils n’ont aucuns leurs propres paramètres génériques. Ce n’est pas nécessairement vrai pour les types imbriqués définis dans des assemblys dynamiques ou compilés avec le Ilasm.exe (IL Assembler).

Pour plus d’informations sur les types génériques imbriqués et sur la construction de types génériques imbriqués à partir de leurs définitions de type générique, consultez MakeGenericType.

L’exemple suivant crée deux classes publiques imbriquées et deux classes protégées imbriquées et affiche des informations pour les classes qui correspondent aux contraintes de liaison spécifiées.

using System;
using System.Reflection;

// Create a class with 2 nested public and 2 nested protected classes.
public class MyTypeClass
{
    public class Myclass1
    {
    }

    public class Myclass2 
    {
    }

    protected class MyClass3
    {
    }

    protected class MyClass4
    {
    }
}

public class TypeMain
{
    public static void Main() 
    {
        Type myType = (typeof(MyTypeClass));
        // Get the public nested classes.
        Type[] myTypeArray = myType.GetNestedTypes(BindingFlags.Public);
        Console.WriteLine("The number of nested public classes is {0}.", myTypeArray.Length);
        // Display all the public nested classes.
        DisplayTypeInfo(myTypeArray);
        Console.WriteLine();

        // Get the nonpublic nested classes.
        Type[] myTypeArray1 = myType.GetNestedTypes(BindingFlags.NonPublic|BindingFlags.Instance);
        Console.WriteLine("The number of nested protected classes is {0}.", myTypeArray1.Length);
        // Display all the nonpublic nested classes.
        DisplayTypeInfo(myTypeArray1);		
    }

    public static void DisplayTypeInfo(Type[] myArrayType)
    {
        // Display the information for all the nested classes.
        foreach (var t in myArrayType)
            Console.WriteLine("The name of the nested class is {0}.", t.FullName);
    }
}
// The example displays the following output:
//       The number of public nested classes is 2.
//       The name of the nested class is MyTypeClass+Myclass1.
//       The name of the nested class is MyTypeClass+Myclass2.
//       
//       The number of protected nested classes is 2.
//       The name of the nested class is MyTypeClass+MyClass3.
//       The name of the nested class is MyTypeClass+MyClass4.

.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Retour au début
Afficher: