GetMember Méthode (String)
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Type.GetMember, méthode (String)

 

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

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.

Les membres incluent 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 varient en fonction de 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 trouver des initialiseurs de classe, utilisez une surcharge qui prend BindingFlags, et spécifiez BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic en Visual Basic).Vous pouvez également obtenir l'initialiseur de classe à l'aide de la TypeInitializer propriété.

Le tableau suivant présente les membres de 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 à celui des méthodes qui implémentent la propriété.La 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 virtuel) peut être masquée 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 à celui des méthodes qui implémentent la propriété.La 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, retournent de types, les types de paramètre, sentinelles et conventions d'appel non managées.Il s'agit d'une comparaison binaire.

  2. Pour la réflexion, les propriétés et les événements sont masquer-par-nom-et-signature.Si vous avez une propriété avec une commande get et un accesseur set dans 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. Les 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 avec le nom «MyMethod<int>», plutôt qu'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 commençant 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
Portable Class Library
Pris en charge dans : portable .NET platforms
Silverlight
Disponible depuis 2.0
Windows Phone Silverlight
Disponible depuis 7.0
Retour au début
Afficher:
© 2016 Microsoft