Type.GetNestedType Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient un type spécifique imbriqué dans le Type actuel.
Surcharges
GetNestedType(String) |
Recherche le type imbriqué public avec le nom spécifié. |
GetNestedType(String, BindingFlags) |
En cas de substitution dans une classe dérivée, recherche le type imbriqué spécifié, à l'aide des contraintes de liaison spécifiées. |
GetNestedType(String)
- Source:
- Type.cs
- Source:
- Type.cs
- Source:
- Type.cs
Recherche le type imbriqué public avec le nom spécifié.
public:
Type ^ GetNestedType(System::String ^ name);
public:
virtual Type ^ GetNestedType(System::String ^ name);
public Type? GetNestedType (string name);
public Type GetNestedType (string name);
member this.GetNestedType : string -> Type
abstract member GetNestedType : string -> Type
override this.GetNestedType : string -> Type
Public Function GetNestedType (name As String) As Type
Paramètres
- name
- String
Chaîne contenant le nom du type imbriqué à obtenir.
Retours
Objet représentant le type imbriqué public avec le nom spécifié, s'il est trouvé ; sinon, null
.
Implémente
Exceptions
name
est null
.
Remarques
La recherche respecte name
la casse.
Utilisez le nom simple de la classe imbriquée pour name
. Ne la qualifiez pas avec le nom de la classe externe. Pour une classe imbriquée générique, utilisez le nom mangled, c’est-à-dire ajouter un accent grave et le nombre d’arguments génériques. Par exemple, utilisez la chaîne « Inner'1 » pour obtenir la classe Inner<T>
imbriquée générique (Inner(Of T)
en Visual Basic). N’incluez pas la syntaxe propre au langage pour les paramètres de type.
Le tableau suivant montre quels membres d’une classe de base sont retournés par les méthodes lors de la Get
réflexion sur un type.
Type de membre | statique | Non statique |
---|---|---|
Constructeur | Non | Non |
Champ | Non | Oui. Un champ est toujours masqué par nom et signature. |
Événement | Non applicable | La règle système de type courante est que l’héritage est le même que celui des méthodes qui implémentent la propriété. Reflection traite les propriétés comme masquer par nom et signature. Voir la note 2 ci-dessous. |
Méthode | Non | Oui. Une méthode (virtuelle et non virtuelle) peut être hide-by-name ou hide-by-name-and-signature. |
Type imbriqué | Non | Non |
Propriété | Non applicable | La règle système de type courante est que l’héritage est le même que celui des méthodes qui implémentent la propriété. Reflection traite les propriétés comme masquer par nom et signature. Voir la note 2 ci-dessous. |
Masquer par nom et signature prend en compte toutes les parties de la signature, y compris les modificateurs personnalisés, les types de retour, les types de paramètres, les sentinelles et les conventions d’appel non managées. Il s’agit d’une comparaison binaire.
Pour la réflexion, les propriétés et les événements sont masqués par nom-et-signature. Si vous avez une propriété avec un accesseur get et un accesseur set dans la classe de base, mais que la classe dérivée n’a qu’un accesseur get, la propriété de classe dérivée masque la propriété de classe de base et vous ne pourrez pas accéder au setter sur la classe de base.
Les attributs personnalisés ne font pas partie du système de type commun.
Si le actuel Type représente un paramètre de type dans la définition d’un type générique ou d’une 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é.
Notes
Si le actuel 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 aucun paramètre générique. Cela n’est pas nécessairement vrai pour les types imbriqués définis dans des assemblys dynamiques ou compilés avec le Ilasm.exe (assembleur IL).
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.
Voir aussi
S’applique à
GetNestedType(String, BindingFlags)
- Source:
- Type.cs
- Source:
- Type.cs
- Source:
- Type.cs
En cas de substitution dans une classe dérivée, recherche le type imbriqué spécifié, à l'aide des contraintes de liaison spécifiées.
public:
abstract Type ^ GetNestedType(System::String ^ name, System::Reflection::BindingFlags bindingAttr);
public abstract Type? GetNestedType (string name, System.Reflection.BindingFlags bindingAttr);
public abstract Type GetNestedType (string name, System.Reflection.BindingFlags bindingAttr);
abstract member GetNestedType : string * System.Reflection.BindingFlags -> Type
Public MustOverride Function GetNestedType (name As String, bindingAttr As BindingFlags) As Type
Paramètres
- name
- String
Chaîne contenant le nom du type imbriqué à obtenir.
- bindingAttr
- BindingFlags
Combinaison de bits de valeurs d’énumération qui spécifie la façon dont est effectuée la recherche.
- ou -
Default pour retourner null
.
Retours
Objet qui représente le type imbriqué correspondant aux critères spécifiés, s'il est trouvé ; sinon, null
.
Implémente
Exceptions
name
est null
.
Remarques
Utilisez le nom simple de la classe imbriquée pour name
. Ne la qualifiez pas avec le nom de la classe externe. Pour une classe imbriquée générique, utilisez le nom mangled, c’est-à-dire ajouter un accent grave et le nombre de paramètres génériques. Par exemple, utilisez la chaîne « Inner'1 » pour obtenir la classe Inner<T>
imbriquée générique (Inner(Of T)
en Visual Basic). N’incluez pas la syntaxe propre au langage pour les paramètres de type.
Les indicateurs de filtre suivants BindingFlags peuvent être utilisés pour définir les types imbriqués à inclure dans la recherche :
Vous devez spécifier ou BindingFlags.PublicBindingFlags.NonPublic pour obtenir un retour.
Spécifiez BindingFlags.Public pour inclure des types imbriqués publics dans la recherche.
Spécifiez BindingFlags.NonPublic pour inclure des types imbriqués non publics (c’est-à-dire des types imbriqués privés, internes et protégés) 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 les types imbriqués dans les classes de base, vous devez parcourir la hiérarchie d’héritage, en appelant GetNestedType à chaque niveau.
BindingFlags.Instance et BindingFlags.Static sont ignorés.
L’appel de cette méthode avec uniquement l’indicateur BindingFlags.Public ou uniquement l’indicateur BindingFlags.NonPublic retourne les types imbriqués spécifiés et ne nécessite aucun autre indicateur.
Consultez la rubrique System.Reflection.BindingFlags (éventuellement en anglais) pour plus d'informations.
Si le actuel Type représente un paramètre de type dans la définition d’un type générique ou d’une 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é.
Notes
Si le actuel 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 aucun paramètre générique. Cela n’est pas nécessairement vrai pour les types imbriqués définis dans des assemblys dynamiques ou compilés avec le Ilasm.exe (assembleur IL).
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.