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
|
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.
Assembly : mscorlib (dans mscorlib.dll)
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.MethodInfoObjet 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
|
|---|
|
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
|
|---|
|
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
|
|---|
|
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); } }
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.
Remarque