(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Type.GetMethod-Methode (String, Type[])

Sucht die angegebene öffentliche Methode, deren Parameter den angegebenen Argumenttypen entsprechen.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public MethodInfo GetMethod(
	string name,
	Type[] types
)

Parameter

name
Typ: System.String
Die Zeichenfolge, die den Namen der abzurufenden öffentlichen Methode enthält.
types
Typ: System.Type[]
Ein Array von Type-Objekten, das die Anzahl, die Reihenfolge und den Typ der Parameter der abzurufenden Methode darstellt.
- oder -
Ein leeres Array von Type-Objekten (bereitgestellt vom EmptyTypes-Feld) zum Abrufen einer Methode, die keine Parameter akzeptiert.

Rückgabewert

Typ: System.Reflection.MethodInfo
Ein Objekt, das die öffentliche Methode darstellt, deren Parameter den angegebenen Argumenttypen entsprechen, sofern gefunden, andernfalls null.

Implementiert

_Type.GetMethod(String, Type[])

AusnahmeBedingung
AmbiguousMatchException

Es wurde mehr als eine Methode mit dem angegebenen Namen und den angegebenen Parametern gefunden.

ArgumentNullException

name ist null.

- oder -

types ist null.

- oder -

Eines der Elemente in types ist null.

ArgumentException

types ist mehrdimensional.

Bei der Suche nach name wird die Groß- und Kleinschreibung berücksichtigt. Die Suche schließt öffentliche statische Methoden und öffentliche Instanzmethoden ein.

HinweisHinweis

Bei der Suche nach Konstruktoren oder Methoden dürfen keine Parameter ausgelassen werden. Nur beim Aufruf können Parameter ausgelassen werden.

Wenn der aktuelle T:System.Type einen konstruierten generischen Typ darstellt, gibt diese Methode die MethodInfo zurück, wobei die Typparameter durch die entsprechenden Typargumente ersetzt wurden.

Wenn der aktuelle Type einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die Methoden der Klasseneinschränkung oder die Methoden von Object, wenn keine Klasseneinschränkung vorhanden ist.

HinweisHinweis

Der name-Parameter darf keine Typargumente enthalten. Mit dem C#-Code GetMethod("MyGenericMethod<int>") wird z. B. nach einer Methode mit dem Textnamen "MyGenericMethod<int>" gesucht, nicht nach einer Methode mit dem Namen MyGenericMethod mit einem generischen Argument vom int-Typ. Verwenden Sie stattdessen GetMethod("MyGenericMethod") mit dem entsprechenden Parameter im types-Array.

Im folgenden Beispiel werden bestimmte Überladungen von MethodA gesucht. Als Suchparameter werden verschiedene Argumenttypen angegeben.

HinweisHinweis

Für das Visual C# 2005-Beispiel muss die Compileroption /unsafe verwendet werden.



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

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft