Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

Type.GetMethod, méthode (String, Type[])

Recherche la méthode publique spécifiée dont les paramètres correspondent aux types d'arguments spécifiés.

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)
public MethodInfo GetMethod(
	string name,
	Type[] types
)

Paramètres

name
Type : System.String
Chaîne contenant le nom de la méthode publique à obtenir.
types
Type : System.Type[]
Tableau d'objets Type représentant le nombre, l'ordre et le type des paramètres de la méthode à obtenir.
ou
Tableau vide d'objets Type (tels que le champ EmptyTypes les fournit) pour obtenir une méthode qui ne prend aucun paramètre.

Valeur de retour

Type : System.Reflection.MethodInfo
Objet représentant la méthode publique dont les paramètres correspondent aux types d'arguments spécifiés, si elle est trouvée ; sinon, null.

Implémentations

_Type.GetMethod(String, Type[])
Exception Condition
AmbiguousMatchException

La recherche a trouvé plus d'une méthode présentant le nom et les paramètres spécifiés.

ArgumentNullException

name est null.

ou

types est null.

ou

Un des éléments dans types est null.

ArgumentException

types est multidimensionnel.

La recherche de name respecte la casse. La recherche inclut les méthodes d'instance statiques publiques et publiques.

Remarque Remarque

Vous ne pouvez pas omettre de paramètres lorsque vous cherchez les constructeurs et méthodes. Vous pouvez uniquement omettre les paramètres lors de l'appel.

Si le T:System.Type actuel représente un type générique construit, cette méthode retourne MethodInfo où les paramètres de type sont remplacés par les arguments de type appropriés.

Si le Type actuel représente un paramètre de type dans la définition d'un type ou d'une méthode générique, cette méthode recherche les méthodes de la contrainte de classe, ou les méthodes de Object, s'il n'existe aucune contrainte de classe.

Remarque Remarque

Le paramètre name ne peut pas comporter d'arguments de type. Par exemple, le code C# GetMethod("MyGenericMethod<int>") recherche une méthode portant le nom textuel "MyGenericMethod<int>" plutôt qu'une méthode nommée MyGenericMethod qui possède un argument générique de type int. À la place, utilisez GetMethod("MyGenericMethod") avec le paramètre approprié dans le tableau types.

L'exemple suivant recherche des surcharges spécifiques de MethodA, en spécifiant divers types d'arguments.

Remarque Remarque

L'exemple Visual C# 2005 requiert l'option du compilateur /unsafe.



using System;
using System.Reflection;

class Program
{
    // Methods to get:

    public void MethodA(int i, int j) { }

    public void MethodA(int[] i) { }

    public unsafe void MethodA(int* i) { }

    public void MethodA(ref int r) {}

    // Method that takes an out parameter:
    public void MethodA(int i, out int o) { o = 100;}


  static void Main(string[] args)
  {
    MethodInfo mInfo;

    // Get MethodA(int i, int i)
    mInfo = typeof(Program).GetMethod("MethodA",
        new Type[] { typeof(int), typeof(int) });
    Console.WriteLine("Found method: {0}", mInfo);

    // Get MethodA(int[] i)
    mInfo = typeof(Program).GetMethod("MethodA",
        new Type[] { typeof(int[]) });
    Console.WriteLine("Found method: {0}", mInfo);

    // Get MethodA(int* i)
    mInfo = typeof(Program).GetMethod("MethodA",
        new Type[] { typeof(int).MakePointerType() });
    Console.WriteLine("Found method: {0}", mInfo);

    // Get MethodA(ref int r)
    mInfo = typeof(Program).GetMethod("MethodA",
        new Type[] { typeof(int).MakeByRefType() });
    Console.WriteLine("Found method: {0}", mInfo);

    // Get MethodA(int i, out int o)
    mInfo = typeof(Program).GetMethod("MethodA",
        new Type[] { typeof(int), typeof(int).MakeByRefType() });
    Console.WriteLine("Found method: {0}", mInfo);

  }
}


.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Pris en charge dans :

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,