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.GetMember méthode (String)

 

Date de publication : novembre 2016

Recherche les membres publics portant le nom spécifié.

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

public MemberInfo[] GetMember(
	string name
)

Paramètres

name
Type: System.String

Chaîne contenant le nom des membres publics à obtenir.

Valeur de retour

Type: System.Reflection.MemberInfo[]

Tableau d'objets MemberInfo représentant les membres publics portant le nom spécifié, si ces objets sont trouvés ; sinon, un tableau vide.

Exception Condition
ArgumentNullException

name a la valeur null.

La recherche de name respecte la casse. La recherche inclut les membres d’instance publics de static et public.

Comprendre les propriétés, méthodes, champs, événements et ainsi de suite.

Le GetMember méthode ne retourne pas les membres 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 membres sont retournés, car cet ordre varie.

Cette surcharge de méthode ne trouvera pas d’initialiseurs de classe (.cctor). Pour rechercher des initialiseurs de classe, utilisez une surcharge qui accepte BindingFlagset spécifiez BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic in Visual Basic). Vous pouvez également obtenir l’initialiseur de classe à l’aide de la TypeInitializer propriété.

Le tableau suivant présente les membres d’une classe de base sont retournés par la Get méthodes lors de la réflexion sur un type.

Type de membre

Statique

Non statique

Constructeur

Non

Non

Champ

Non

Oui. Un champ est toujours masquer-par-nom-et-signature.

Événement

Non applicable

La règle de système de type commun est que l’héritage est identique à celle des méthodes qui implémentent la propriété. Réflexion traite les propriétés comme masquer-par-nom-et-signature. Voir la Remarque 2 ci-dessous.

Méthode

Non

Oui. Une méthode (virtuelle et non virtuelle) peut être masquer par nom ou masquer-par-nom-et-signature.

Type imbriqué

Non

Non

Propriété

Non applicable

La règle de système de type commun est que l’héritage est identique à celle des méthodes qui implémentent la propriété. Réflexion traite les propriétés comme masquer-par-nom-et-signature. Voir la Remarque 2 ci-dessous.

  1. Masquer-par-nom-et-signature prend en compte toutes les parties de la signature, y compris les modificateurs personnalisés, des conventions d’appel non managées, les types de paramètres, les sentinelles et les types de retour. Il s’agit d’une comparaison binaire.

  2. Pour la réflexion, les propriétés et événements sont masquer-par-nom-et-signature. Si vous avez une propriété avec une commande get et un accesseur set de la classe de base, mais la classe dérivée possède uniquement un accesseur get, la propriété de la classe dérivée masque la propriété de classe de base, et vous ne pourrez pas accéder à l’accesseur Set sur la classe de base.

  3. Attributs personnalisés ne font pas partie du système de type commun.

Si le courant Type représente un type générique construit, cette méthode retourne la MemberInfo avec les paramètres de type remplacés par les arguments de type approprié.

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 membres de la contrainte de classe, ou les membres de Object s’il n’existe aucune contrainte de classe.

System_CAPS_noteRemarque

Pour les méthodes génériques, n’incluez pas les arguments de type dans name. Par exemple, le code c# GetMember("MyMethod<int>") recherche un membre portant le nom «MyMethod<int>», plutôt que pour une méthode nommée MyMethod qui possède un argument générique de type int.

L’exemple suivant affiche tous les membres de la String classe qui commencent par la lettre C.


using System;
using System.Security;
using System.Reflection;

public class MyMemberSample 
{
    public static void Main()
    {
        MyMemberSample myClass = new MyMemberSample();
        try
        {
            myClass.GetMemberInfo();
            myClass.GetPublicStaticMemberInfo();	
            myClass.GetPublicInstanceMethodMemberInfo();	
        }      
        catch(ArgumentNullException e)
        {
            Console.WriteLine("ArgumentNullException occurred.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);
        }
        catch(NotSupportedException e)
        {
            Console.WriteLine("NotSupportedException occurred.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);
        }
        catch(SecurityException e)
        {
            Console.WriteLine("SecurityException occurred.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("Exception occurred.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);
        }
    }

    public void GetMemberInfo()
    {
        String myString = "GetMember_String";

        Type myType = myString.GetType();
        // Get the members for myString starting with the letter C.
        MemberInfo[] myMembers = myType.GetMember("C*");
        if(myMembers.Length > 0)
        {
            Console.WriteLine("\nThe member(s) starting with the letter C for type {0}:", myType);
            for(int index=0; index < myMembers.Length; index++)
                Console.WriteLine("Member {0}: {1}", index + 1, myMembers[index].ToString());
        }
        else
            Console.WriteLine("No members match the search criteria.");    
    }

.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: