Type.GetMethod Methode

Definition

Ruft eine bestimmte Methode des aktuellen Type ab.Gets a specific method of the current Type.

Überlädt

GetMethod(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])
GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Sucht nach der angegebenen Methode, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen, und verwendet dabei die angegebenen Bindungseinschränkungen und die angegebene Aufrufkonvention.Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

GetMethod(String, Int32, BindingFlags, Binder, Type[], ParameterModifier[])
GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])

Sucht unter Verwendung der angegebenen Bindungseinschränkungen nach der angegebenen Methode, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen.Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints.

GetMethod(String, Int32, Type[], ParameterModifier[])
GetMethod(String, Type[])

Sucht die angegebene öffentliche Methode, deren Parameter den angegebenen Argumenttypen entsprechen.Searches for the specified public method whose parameters match the specified argument types.

GetMethod(String, Int32, Type[])
GetMethod(String, BindingFlags)

Sucht die angegebene Methode unter Verwendung der angegebenen Bindungseinschränkungen.Searches for the specified method, using the specified binding constraints.

GetMethod(String)

Sucht die öffentliche Methode mit dem angegebenen Namen.Searches for the public method with the specified name.

GetMethod(String, Type[], ParameterModifier[])

Sucht die angegebene öffentliche Methode, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen.Searches for the specified public method whose parameters match the specified argument types and modifiers.

GetMethod(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

public:
 System::Reflection::MethodInfo ^ GetMethod(System::String ^ name, int genericParameterCount, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, System::Reflection::CallingConventions callConvention, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
public System.Reflection.MethodInfo GetMethod (string name, int genericParameterCount, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, Type[] types, System.Reflection.ParameterModifier[] modifiers);
member this.GetMethod : string * int * System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo

Parameter

name
String
genericParameterCount
Int32
bindingAttr
BindingFlags
binder
Binder
callConvention
CallingConventions
types
Type[]
modifiers
ParameterModifier[]

Gibt zurück

GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Sucht nach der angegebenen Methode, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen, und verwendet dabei die angegebenen Bindungseinschränkungen und die angegebene Aufrufkonvention.Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

public:
 virtual System::Reflection::MethodInfo ^ GetMethod(System::String ^ name, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, System::Reflection::CallingConventions callConvention, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
public System.Reflection.MethodInfo GetMethod (string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, Type[] types, System.Reflection.ParameterModifier[] modifiers);
abstract member GetMethod : string * System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo
override this.GetMethod : string * System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo

Parameter

name
String

Die Zeichenfolge, die den Namen der abzurufenden Methode enthält.The string containing the name of the method to get.

bindingAttr
BindingFlags

Eine bitweise Kombination der Enumerationswerte, die angeben, wie die Suche durchgeführt wird.A bitwise combination of the enumeration values that specify how the search is conducted.

- oder --or- Default, damit null zurückgegeben wird.Default to return null.

binder
Binder

Ein Objekt, das eine Gruppe von Eigenschaften definiert und eine Bindung ermöglicht. Dazu kann die Auswahl einer überladenen Methode, die Umwandlung von Argumenttypen und der Aufruf eines Members durch Reflektion gehören.An object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.

- oder --or- Ein Nullverweis (Nothing in Visual Basic), wenn DefaultBinder verwendet werden soll.A null reference (Nothing in Visual Basic), to use the DefaultBinder.

callConvention
CallingConventions

Das Objekt, das die Regeln für Reihenfolge und Layout der Argumente, die Art der Übergabe des Rückgabewerts, die für Argumente zu verwendenden Register und die Art der Stapelbereinigung angibt.The object that specifies the set of rules to use regarding the order and layout of arguments, how the return value is passed, what registers are used for arguments, and how the stack is cleaned up.

types
Type[]

Ein Array von Type-Objekten, das die Anzahl, die Reihenfolge und den Typ der Parameter der abzurufenden Methode darstellt.An array of Type objects representing the number, order, and type of the parameters for the method to get.

- oder --or- Ein leeres Array von Type-Objekten (bereitgestellt vom EmptyTypes-Feld) zum Abrufen einer Methode, die keine Parameter akzeptiert.An empty array of Type objects (as provided by the EmptyTypes field) to get a method that takes no parameters.

modifiers
ParameterModifier[]

Ein Array von ParameterModifier-Objekten, die die Attribute darstellen, die dem entsprechenden Element im types-Array zugeordnet sind.An array of ParameterModifier objects representing the attributes associated with the corresponding element in the types array. Darf nur bei Aufrufen über COM-Interop verwendet werden. Es werden außerdem nur Parameter berücksichtigt, die als Verweis übergeben werden.To be only used when calling through COM interop, and only parameters that are passed by reference are handled. Der Standardbinder verarbeitet diesen Parameter nicht.The default binder does not process this parameter.

Gibt zurück

Ein Objekt, das die Methode darstellt, die den angegebenen Anforderungen entspricht, sofern diese gefunden wird. Andernfalls null.An object representing the method that matches the specified requirements, if found; otherwise, null.

Implementiert

Ausnahmen

Es wurden mehrere Methoden gefunden, die den angegebenen Namen aufweisen und den angegebenen Bindungseinschränkungen entsprechen.More than one method is found with the specified name and matching the specified binding constraints.

name ist null.name is null.

- oder --or- types ist null.types is null.

- oder --or- Eines der Elemente in types ist null.One of the elements in types is null.

types ist mehrdimensional.types is multidimensional.

- oder --or- modifiers ist mehrdimensional.modifiers is multidimensional.

Beispiele

Im folgenden Beispiel werden bestimmte über Ladungen von MethodAgesucht, die Bindungs Einschränkungen, Aufruf Konventionen und eine Vielzahl von Argument Typen angeben.The following example finds specific overloads of MethodA, specifying binding constraints, calling conventions, and a variety of argument types.

Hinweis

Das Visual C# 2005Visual C# 2005 Beispiel erfordert die /unsafe -Compileroption.The Visual C# 2005Visual C# 2005 example requires the /unsafe compiler option.

using namespace System;
using namespace System::Reflection;

public ref class Program
{

public:
    // Methods to get:

    void MethodA(int i, int j) { }

    void MethodA(array<int>^ iarry) { }

    void MethodA(double *ip) { }

    // Method that takes a managed reference paramter.
    void MethodA(int% r) {}
};

int main()
{
    MethodInfo^ mInfo;


    // Get MethodA(int i, int j)
    mInfo = Program::typeid->GetMethod("MethodA",
        BindingFlags::Public | BindingFlags::Instance,
        nullptr,
        CallingConventions::Any,
        gcnew array<Type^> {int::typeid, int::typeid},
        nullptr);
    Console::WriteLine("Found method: {0}", mInfo );

    // Get  MethodA(array<int>^ iarry)
    mInfo = Program::typeid->GetMethod("MethodA",
        BindingFlags::Public | BindingFlags::Instance,
        nullptr,
        CallingConventions::Any,
        gcnew array<Type^> {int::typeid->MakeArrayType()},
        nullptr);
    Console::WriteLine("Found method: {0}", mInfo );

    // Get MethodA(double *ip)
    mInfo = Program::typeid->GetMethod("MethodA",
        BindingFlags::Public | BindingFlags::Instance,
        nullptr,
        CallingConventions::Any,
        gcnew array<Type^> {double::typeid->MakePointerType()},
        nullptr);
    Console::WriteLine("Found method: {0}", mInfo );

    // Get MethodA(int% r)
    mInfo = Program::typeid->GetMethod("MethodA",
        BindingFlags::Public | BindingFlags::Instance,
        nullptr,
        CallingConventions::Any,
        gcnew array<Type^> {int::typeid->MakeByRefType()},
        nullptr);
    Console::WriteLine("Found method: {0}", mInfo );

}

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 j)
    mInfo = typeof(Program).GetMethod("MethodA",
        BindingFlags.Public | BindingFlags.Instance,
        null,
        CallingConventions.Any,
        new Type[] { typeof(int), typeof(int) },
        null);
    Console.WriteLine("Found method: {0}", mInfo);

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

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

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

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

  }
}

Imports System.Reflection
Imports System.Runtime.InteropServices

Class Program

    ' Methods to get:
    
    Public Overloads Sub MethodA(ByVal i As Integer, ByVal l As Long)

    End Sub

    Public Overloads Sub MethodA(ByVal i() As Integer)

    End Sub

    Public Overloads Sub MethodA(ByRef r As Integer)

    End Sub

    ' Method that takes an integer and an out parameter. Note that an
    ' Imports reference is needed to System.Runtime.InteropServices
    ' for the <OutAttribute>, which can be shortened to <Out>.
    Public Overloads Sub MethodA(ByVal i As Integer, <Out()> ByRef o As Integer)
        o = 100
    End Sub

    Public Shared Sub Main(ByVal args() As String)
        Dim mInfo As MethodInfo

        ' Get MethodA(ByVal i As Integer, ByVal l As Long)
        mInfo = GetType(Program).GetMethod("MethodA", _
            BindingFlags.Public Or BindingFlags.Instance, _
            Nothing, _
            CallingConventions.Any, _
            New Type() {GetType(System.Int32), _
            GetType(System.Int64)}, _
            Nothing)
        Console.WriteLine("Found method: {0}", mInfo)

        ' Get  MethodA(ByVal i() As Integer)
        mInfo = GetType(Program).GetMethod("MethodA", _
            BindingFlags.Public Or BindingFlags.Instance, _
            Nothing, _
            CallingConventions.Any, _
            New Type() {GetType(System.Int32())}, _
            Nothing)
        Console.WriteLine("Found method: {0}", mInfo)

        ' Get MethodA(ByRef r As Integer)
        mInfo = GetType(Program).GetMethod("MethodA", _
        BindingFlags.Public Or BindingFlags.Instance, _
        Nothing, _
        CallingConventions.Any, _
        New Type() {GetType(System.Int32).MakeByRefType}, _
        Nothing)
        Console.WriteLine("Found method: {0}", mInfo)

        ' Get MethodA(ByVal i As Integer, <Out()> ByRef o As Integer)
        mInfo = GetType(Program).GetMethod("MethodA", _
        BindingFlags.Public Or BindingFlags.Instance, _
        Nothing, _
        CallingConventions.Any, _
        New Type() {GetType(System.Int32), GetType(System.Int32).MakeByRefType}, _
        Nothing)
        Console.WriteLine("Found method: {0}", mInfo)

    End Sub
End Class

Hinweise

Obwohl der Standard ParameterModifier Binder nicht verarbeitet (der modifiers -Parameter), können Sie die abstrakte System.Reflection.Binder -Klasse verwenden, um einen benutzerdefinierten Binder zu modifiersschreiben, der verarbeitet.Although the default binder does not process ParameterModifier (the modifiers parameter), you can use the abstract System.Reflection.Binder class to write a custom binder that does process modifiers. ParameterModifierwird nur beim Aufrufen über COM-Interop verwendet, und nur Parameter, die als Verweis übermittelt werden, werden behandelt.ParameterModifier is only used when calling through COM interop, and only parameters that are passed by reference are handled.

In der folgenden Tabelle wird gezeigt, welche Member einer Basisklasse von den GetXXX Methoden zurückgegeben werden, wenn ein Typ reflektiert wird.The following table shows what members of a base class are returned by the GetXXX methods when reflecting on a type.

MemberartMember Type StatischStatic Nicht statischNon-Static
KonstruktorConstructor NeinNo NeinNo
FeldField NeinNo Ja.Yes. Ein Feld wird immer nach Name und Signatur ausgeblendet.A field is always hide-by-name-and-signature.
eventEvent Nicht zutreffendNot applicable Die allgemeine Typsystem Regel ist, dass die Vererbung mit der der Methoden identisch ist, die die-Eigenschaft implementieren.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Die Reflektion behandelt Eigenschaften als "ausblenden nach Namen" und "Signatur".Reflection treats properties as hide-by-name-and-signature. Siehe Hinweis 2 weiter unten.See note 2 below.
MethodeMethod NeinNo Ja.Yes. Eine Methode (sowohl virtuell als auch nicht virtuell) kann nach Namen oder nach Name und Signatur ausgeblendet werden.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
Der Typ "Typ"Nested Type NeinNo NeinNo
EigenschaftProperty Nicht zutreffendNot applicable Die allgemeine Typsystem Regel ist, dass die Vererbung mit der der Methoden identisch ist, die die-Eigenschaft implementieren.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Die Reflektion behandelt Eigenschaften als "ausblenden nach Namen" und "Signatur".Reflection treats properties as hide-by-name-and-signature. Siehe Hinweis 2 weiter unten.See note 2 below.
  1. "Hide-by-Name-and-Signature" berücksichtigt alle Teile der Signatur, einschließlich benutzerdefinierter Modifizierer, Rückgabe Typen, Parametertypen, Sentinels und nicht verwalteter Aufruf Konventionen.Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. Dies ist ein binärer Vergleich.This is a binary comparison.

  2. Für Reflektion werden Eigenschaften und Ereignisse nach Name und Signatur ausgeblendet.For reflection, properties and events are hide-by-name-and-signature. Wenn Sie über eine Eigenschaft verfügen, die sowohl einen get-als auch einen Set-Accessor in der Basisklasse aufweist, aber die abgeleitete Klasse nur über einen get-Accessor verfügt, blendet die Eigenschaft der abgeleiteten Klasse die Basisklassen Eigenschaft aus, und Sie können nicht auf den Setter für die Basisklasse zugreifen.If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. Benutzerdefinierte Attribute sind nicht Teil des allgemeinen Typsystems.Custom attributes are not part of the common type system.

Die folgenden BindingFlags Filterflags können verwendet werden, um zu definieren, welche Methoden in die Suche eingeschlossen werden sollen:The following BindingFlags filter flags can be used to define which methods to include in the search:

  • Sie müssen entweder BindingFlags.Instance oder BindingFlags.Static angeben, um eine Rückgabe zu erhalten.You must specify either BindingFlags.Instance or BindingFlags.Static in order to get a return.

  • Geben BindingFlags.Public Sie an, um öffentliche Methoden in die Suche einzubeziehen.Specify BindingFlags.Public to include public methods in the search.

  • Geben BindingFlags.NonPublic Sie an, dass nicht öffentliche Methoden (d. h. private, interne und geschützte Methoden) in die Suche eingeschlossen werden sollen.Specify BindingFlags.NonPublic to include nonpublic methods (that is, private, internal, and protected methods) in the search.

  • Legen BindingFlags.FlattenHierarchy protected Siepublic fest, dass und statische Member in der Hierarchie nach oben private statische Member in geerbten Klassen sind nicht eingeschlossen.Specify BindingFlags.FlattenHierarchy to include public and protected static members up the hierarchy; private static members in inherited classes are not included.

Die folgenden BindingFlags Modifiziererflags können verwendet werden, um die Funktionsweise der Suche zu ändern:The following BindingFlags modifier flags can be used to change how the search works:

  • BindingFlags.IgnoreCase, wenn der Fall von nameignoriert werden soll.BindingFlags.IgnoreCase to ignore the case of name.

  • BindingFlags.DeclaredOnlyum nur die Methoden zu durchsuchen Type, die in deklariert sind, und nicht die Methoden, die einfach geerbt wurden.BindingFlags.DeclaredOnly to search only the methods declared on the Type, not methods that were simply inherited.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.See System.Reflection.BindingFlags for more information.

Hinweis

Sie können Parameter nicht weglassen, wenn Sie Konstruktoren und Methoden suchen.You cannot omit parameters when looking up constructors and methods. Beim Aufrufen von können Sie nur Parameter weglassen.You can only omit parameters when invoking.

Wenn der aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese MethodInfo Methode den mit den Typparametern zurück, die durch die entsprechenden Typargumente ersetzt werden.If the current Type represents a constructed generic type, this method returns the MethodInfo with the type parameters replaced by the appropriate type arguments.

Wenn der aktuelle Type einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die Methoden der Klassen Einschränkung oder die Methoden Object von, wenn keine Klassen Einschränkung vorhanden ist.If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the methods of the class constraint, or the methods of Object if there is no class constraint.

Hinweis

Fügen Sie bei generischen Methoden nicht die Typargumente in nameein.For generic methods, do not include the type arguments in name. C# Der Code GetMember("MyMethod<int>") sucht z. b. nach einem Member mit dem TextnamenMyMethod<int>"" und nicht nach einer Methode mit MyMethod dem Namen, die ein generisches intArgument vom Typ aufweist.For example, the C# code GetMember("MyMethod<int>") searches for a member with the text name "MyMethod<int>", rather than for a method named MyMethod that has one generic argument of type int.

Siehe auch

GetMethod(String, Int32, BindingFlags, Binder, Type[], ParameterModifier[])

public:
 System::Reflection::MethodInfo ^ GetMethod(System::String ^ name, int genericParameterCount, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
public System.Reflection.MethodInfo GetMethod (string name, int genericParameterCount, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, Type[] types, System.Reflection.ParameterModifier[] modifiers);
member this.GetMethod : string * int * System.Reflection.BindingFlags * System.Reflection.Binder * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo

Parameter

name
String
genericParameterCount
Int32
bindingAttr
BindingFlags
binder
Binder
types
Type[]
modifiers
ParameterModifier[]

Gibt zurück

GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])

Sucht unter Verwendung der angegebenen Bindungseinschränkungen nach der angegebenen Methode, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen.Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints.

public:
 virtual System::Reflection::MethodInfo ^ GetMethod(System::String ^ name, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
public System.Reflection.MethodInfo GetMethod (string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, Type[] types, System.Reflection.ParameterModifier[] modifiers);
abstract member GetMethod : string * System.Reflection.BindingFlags * System.Reflection.Binder * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo
override this.GetMethod : string * System.Reflection.BindingFlags * System.Reflection.Binder * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo

Parameter

name
String

Die Zeichenfolge, die den Namen der abzurufenden Methode enthält.The string containing the name of the method to get.

bindingAttr
BindingFlags

Eine bitweise Kombination der Enumerationswerte, die angeben, wie die Suche durchgeführt wird.A bitwise combination of the enumeration values that specify how the search is conducted.

- oder --or- Default, damit null zurückgegeben wird.Default to return null.

binder
Binder

Ein Objekt, das eine Gruppe von Eigenschaften definiert und eine Bindung ermöglicht. Dazu kann die Auswahl einer überladenen Methode, die Umwandlung von Argumenttypen und der Aufruf eines Members durch Reflektion gehören.An object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.

- oder --or- Ein Nullverweis (Nothing in Visual Basic), wenn DefaultBinderverwendet werden soll.A null reference (Nothing in Visual Basic), to use the DefaultBinder.

types
Type[]

Ein Array von Type -Objekten, das die Anzahl, die Reihenfolge und den Typ der Parameter der abzurufenden Methode darstellt.An array of Type objects representing the number, order, and type of the parameters for the method to get.

- oder --or- Ein leeres Array von Type-Objekten (bereitgestellt vom EmptyTypes-Feld) zum Abrufen einer Methode, die keine Parameter akzeptiert.An empty array of Type objects (as provided by the EmptyTypes field) to get a method that takes no parameters.

modifiers
ParameterModifier[]

Ein Array von ParameterModifier-Objekten, die die Attribute darstellen, die dem entsprechenden Element im types-Array zugeordnet sind.An array of ParameterModifier objects representing the attributes associated with the corresponding element in the types array. Darf nur bei Aufrufen über COM-Interop verwendet werden. Es werden außerdem nur Parameter berücksichtigt, die als Verweis übergeben werden.To be only used when calling through COM interop, and only parameters that are passed by reference are handled. Der Standardbinder verarbeitet diesen Parameter nicht.The default binder does not process this parameter.

Gibt zurück

Ein Objekt, das die Methode darstellt, die den angegebenen Anforderungen entspricht, sofern diese gefunden wird. Andernfalls null.An object representing the method that matches the specified requirements, if found; otherwise, null.

Implementiert

Ausnahmen

Es wurden mehrere Methoden gefunden, die den angegebenen Namen aufweisen und den angegebenen Bindungseinschränkungen entsprechen.More than one method is found with the specified name and matching the specified binding constraints.

name ist null.name is null.

- oder --or- types ist null.types is null.

- oder --or- Eines der Elemente in types ist null.One of the elements in types is null.

types ist mehrdimensional.types is multidimensional.

- oder --or- modifiers ist mehrdimensional.modifiers is multidimensional.

Beispiele

Im folgenden Beispiel werden bestimmte über Ladungen von MethodAermittelt, und es werden Bindungs Einschränkungen und verschiedene Argument Typen angegeben.The following example finds specific overloads of MethodA, specifying binding constraints and a variety of argument types.

Hinweis

Das Visual C# 2005Visual C# 2005 Beispiel erfordert die /unsafe -Compileroption.The Visual C# 2005Visual C# 2005 example requires the /unsafe compiler option.

using namespace System;
using namespace System::Reflection;

public ref class Program
{

public:
    // Methods to get:

    void MethodA(int i, int j) { }

    void MethodA(array<int>^ iarry) { }

    void MethodA(double *ip) { }

    // Method that takes a managed reference parameter.
    void MethodA(int% r) {}
};

int main()
{
    MethodInfo^ mInfo;


    // Get MethodA(int i, int j)
    mInfo = Program::typeid->GetMethod("MethodA",
        static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance),
        nullptr,
        gcnew array<Type^> {int::typeid, int::typeid},
        nullptr);
    Console::WriteLine("Found method: {0}", mInfo );

    // Get  MethodA(array<int>^ iarry)
    mInfo = Program::typeid->GetMethod("MethodA",
        static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance),
        nullptr,
        gcnew array<Type^> {int::typeid->MakeArrayType()},
        nullptr);
    Console::WriteLine("Found method: {0}", mInfo );

    // Get MethodA(double *ip)
    mInfo = Program::typeid->GetMethod("MethodA",
        static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance),
        nullptr,
        gcnew array<Type^> {double::typeid->MakePointerType()},
        nullptr);
    Console::WriteLine("Found method: {0}", mInfo );

    // Get MethodA(int% r)
    mInfo = Program::typeid->GetMethod("MethodA",
        static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance),
        nullptr,
        gcnew array<Type^> {int::typeid->MakeByRefType()},
        nullptr);
    Console::WriteLine("Found method: {0}", mInfo );
}

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 j)
    mInfo = typeof(Program).GetMethod("MethodA",
        BindingFlags.Public | BindingFlags.Instance,
        null,
        new Type[] { typeof(int), typeof(int) },
        null);
    Console.WriteLine("Found method: {0}", mInfo);

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

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

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

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

  }
}

Imports System.Reflection
Imports System.Runtime.InteropServices

Class Program

    ' Methods to get:
    
    Public Overloads Sub MethodA(ByVal i As Integer, ByVal l As Long)

    End Sub

    Public Overloads Sub MethodA(ByVal i() As Integer)

    End Sub

    Public Overloads Sub MethodA(ByRef r As Integer)

    End Sub

    ' Method that takes an out parameter. Note that an Imports
    ' reference is needed to System.Runtime.InteropServices 
    ' for the <OutAttribute>, which can be shortened to <Out>.
    Public Overloads Sub MethodA(ByVal i As Integer, <Out()> ByRef o As Integer)
        o = 100
    End Sub

    Public Shared Sub Main(ByVal args() As String)
        Dim mInfo As MethodInfo

        ' Get MethodA(ByVal i As Integer, ByVal l As Long)
        mInfo = GetType(Program).GetMethod("MethodA", _
            BindingFlags.Public Or BindingFlags.Instance, _
            Nothing, _
            New Type() {GetType(System.Int32), _
            GetType(System.Int64)}, _
            Nothing)
        Console.WriteLine("Found method: {0}", mInfo)

        ' Get MethodA(ByVal i() As Integer)
        mInfo = GetType(Program).GetMethod("MethodA", _
            BindingFlags.Public Or BindingFlags.Instance, _
            Nothing, _
            New Type() {GetType(System.Int32())}, _
            Nothing)
        Console.WriteLine("Found method: {0}", mInfo)

        ' Get MethodA(ByRef r As Integer)
        mInfo = GetType(Program).GetMethod("MethodA", _
            BindingFlags.Public Or BindingFlags.Instance, _
            Nothing, _
            New Type() {GetType(System.Int32).MakeByRefType}, _
            Nothing)
        Console.WriteLine("Found method: {0}", mInfo)

        ' Get MethodA(ByVal i As Integer, <Out()> ByRef o As Integer)
        mInfo = GetType(Program).GetMethod("MethodA", _
            BindingFlags.Public Or BindingFlags.Instance, _
            Nothing, _
            New Type() {GetType(System.Int32), GetType(System.Int32).MakeByRefType}, _
            Nothing)
        Console.WriteLine("Found method: {0}", mInfo)

    End Sub
End Class

Hinweise

Obwohl der Standard ParameterModifier Binder nicht verarbeitet (der modifiers -Parameter), können Sie die abstrakte System.Reflection.Binder -Klasse verwenden, um einen benutzerdefinierten Binder zu modifiersschreiben, der verarbeitet.Although the default binder does not process ParameterModifier (the modifiers parameter), you can use the abstract System.Reflection.Binder class to write a custom binder that does process modifiers. ParameterModifierwird nur beim Aufrufen über COM-Interop verwendet, und nur Parameter, die als Verweis übermittelt werden, werden behandelt.ParameterModifier is only used when calling through COM interop, and only parameters that are passed by reference are handled.

Die folgenden BindingFlags Filterflags können verwendet werden, um zu definieren, welche Methoden in die Suche eingeschlossen werden sollen:The following BindingFlags filter flags can be used to define which methods to include in the search:

  • Sie müssen entweder BindingFlags.Instance oder BindingFlags.Static angeben, um eine Rückgabe zu erhalten.You must specify either BindingFlags.Instance or BindingFlags.Static in order to get a return.

  • Geben BindingFlags.Public Sie an, um öffentliche Methoden in die Suche einzubeziehen.Specify BindingFlags.Public to include public methods in the search.

  • Geben BindingFlags.NonPublic Sie an, dass nicht öffentliche Methoden (d. h. private, interne und geschützte Methoden) in die Suche eingeschlossen werden sollen.Specify BindingFlags.NonPublic to include nonpublic methods (that is, private, internal, and protected methods) in the search.

  • Legen BindingFlags.FlattenHierarchy protected Siepublic fest, dass und statische Member in der Hierarchie nach oben private statische Member in geerbten Klassen sind nicht eingeschlossen.Specify BindingFlags.FlattenHierarchy to include public and protected static members up the hierarchy; private static members in inherited classes are not included.

Die folgenden BindingFlags Modifiziererflags können verwendet werden, um die Funktionsweise der Suche zu ändern:The following BindingFlags modifier flags can be used to change how the search works:

  • BindingFlags.IgnoreCase, wenn der Fall von nameignoriert werden soll.BindingFlags.IgnoreCase to ignore the case of name.

  • BindingFlags.DeclaredOnlyum nur die Methoden zu durchsuchen Type, die in deklariert sind, und nicht die Methoden, die einfach geerbt wurden.BindingFlags.DeclaredOnly to search only the methods declared on the Type, not methods that were simply inherited.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.See System.Reflection.BindingFlags for more information.

Hinweis

Sie können Parameter nicht weglassen, wenn Sie Konstruktoren und Methoden suchen.You cannot omit parameters when looking up constructors and methods. Beim Aufrufen von können Sie nur Parameter weglassen.You can only omit parameters when invoking.

Wenn der aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese MethodInfo Methode den mit den Typparametern zurück, die durch die entsprechenden Typargumente ersetzt werden.If the current Type represents a constructed generic type, this method returns the MethodInfo with the type parameters replaced by the appropriate type arguments.

Wenn der aktuelle Type einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die Methoden der Klassen Einschränkung oder die Methoden Object von, wenn keine Klassen Einschränkung vorhanden ist.If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the methods of the class constraint, or the methods of Object if there is no class constraint.

Hinweis

Fügen Sie bei generischen Methoden nicht die Typargumente in nameein.For generic methods, do not include the type arguments in name. C# Der Code GetMember("MyMethod<int>") sucht z. b. nach einem Member mit dem TextnamenMyMethod<int>"" und nicht nach einer Methode mit MyMethod dem Namen, die ein generisches intArgument vom Typ aufweist.For example, the C# code GetMember("MyMethod<int>") searches for a member with the text name "MyMethod<int>", rather than for a method named MyMethod that has one generic argument of type int.

Siehe auch

GetMethod(String, Int32, Type[], ParameterModifier[])

public:
 System::Reflection::MethodInfo ^ GetMethod(System::String ^ name, int genericParameterCount, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
public System.Reflection.MethodInfo GetMethod (string name, int genericParameterCount, Type[] types, System.Reflection.ParameterModifier[] modifiers);
member this.GetMethod : string * int * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo
Public Function GetMethod (name As String, genericParameterCount As Integer, types As Type(), modifiers As ParameterModifier()) As MethodInfo

Parameter

name
String
genericParameterCount
Int32
types
Type[]
modifiers
ParameterModifier[]

Gibt zurück

GetMethod(String, Type[])

Sucht die angegebene öffentliche Methode, deren Parameter den angegebenen Argumenttypen entsprechen.Searches for the specified public method whose parameters match the specified argument types.

public:
 virtual System::Reflection::MethodInfo ^ GetMethod(System::String ^ name, cli::array <Type ^> ^ types);
public System.Reflection.MethodInfo GetMethod (string name, Type[] types);
abstract member GetMethod : string * Type[] -> System.Reflection.MethodInfo
override this.GetMethod : string * Type[] -> System.Reflection.MethodInfo
Public Function GetMethod (name As String, types As Type()) As MethodInfo

Parameter

name
String

Die Zeichenfolge, die den Namen der abzurufenden öffentlichen Methode enthält.The string containing the name of the public method to get.

types
Type[]

Ein Array von Type-Objekten, das die Anzahl, die Reihenfolge und den Typ der Parameter der abzurufenden Methode darstellt.An array of Type objects representing the number, order, and type of the parameters for the method to get.

- oder --or- Ein leeres Array von Type-Objekten (bereitgestellt vom EmptyTypes-Feld) zum Abrufen einer Methode, die keine Parameter akzeptiert.An empty array of Type objects (as provided by the EmptyTypes field) to get a method that takes no parameters.

Gibt zurück

Ein Objekt, das die öffentliche Methode darstellt, deren Parameter den angegebenen Argumenttypen entsprechen, sofern gefunden, andernfalls null.An object representing the public method whose parameters match the specified argument types, if found; otherwise, null.

Implementiert

Ausnahmen

Es wurden mehrere Methoden mit dem angegebenen Namen und den angegebenen Parametern gefunden.More than one method is found with the specified name and specified parameters.

name ist null.name is null.

- oder --or- types ist null.types is null.

- oder --or- Eines der Elemente in types ist null.One of the elements in types is null.

types ist mehrdimensional.types is multidimensional.

Beispiele

Im folgenden Beispiel werden bestimmte über Ladungen von MethodAermittelt, wobei eine Vielzahl von Argument Typen angegeben wird.The following example finds specific overloads of MethodA, specifying a variety of argument types.

Hinweis

Das Visual C# 2005Visual C# 2005 Beispiel erfordert die /unsafe -Compileroption.The Visual C# 2005Visual C# 2005 example requires the /unsafe compiler option.

using namespace System;
using namespace System::Reflection;

public ref class Program
{

public:
    // Methods to get:

    void MethodA(int i, int j) { }

    void MethodA(array<int>^ iarry) { }

    void MethodA(double *ip) { }

    // Method that takes a managed reference parameter.
    void MethodA(int% r) {}
};

int main()
{
    MethodInfo^ mInfo;


    // Get MethodA(int i, int j)
    mInfo = Program::typeid->GetMethod("MethodA", gcnew array<Type^> {int::typeid,int::typeid});
    Console::WriteLine("Found method: {0}", mInfo );

    // Get MethodA(array<int>^ iarry)
    mInfo = Program::typeid->GetMethod("MethodA", gcnew array<Type^> {int::typeid->MakeArrayType()});
    Console::WriteLine("Found method: {0}", mInfo );

    // Get MethodA(double *ip)
    mInfo = Program::typeid->GetMethod("MethodA", gcnew array<Type^> {double::typeid->MakePointerType()});
    Console::WriteLine("Found method: {0}", mInfo );

    // Get MethodA(int% r)
    mInfo = Program::typeid->GetMethod("MethodA", gcnew array<Type^> {int::typeid->MakeByRefType()});
    // Display the method information.
    Console::WriteLine("Found method: {0}", mInfo );

}

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);

  }
}

Imports System.Reflection
Imports System.Runtime.InteropServices

Class Program

    ' Methods to get:

    Public Overloads Sub MethodA(ByVal i As Integer, ByVal l As Long)

    End Sub

    Public Overloads Sub MethodA(ByVal i() As Integer)

    End Sub

    Public Overloads Sub MethodA(ByRef r As Integer)

    End Sub

    ' Method that takes an out parameter. Note that an Imports
    ' reference is needed to System.Runtime.InteropServices 
    ' for the <OutAttribute>, which can be shortened to <Out>.
    Public Overloads Sub MethodA(ByVal i As Integer, <Out()> ByRef o As Integer)
        o = 100
    End Sub

    Public Shared Sub Main(ByVal args() As String)
        Dim mInfo As MethodInfo

        ' Get MethodA(i As Integer i, l As Long)
        mInfo = GetType(Program).GetMethod("MethodA", New Type() {GetType(Integer), GetType(Long)})
        Console.WriteLine("Found method: {0}", mInfo)

        ' Get  MethodA(i As Integer())
        mInfo = GetType(Program).GetMethod("MethodA", New Type() {GetType(Integer())})
        Console.WriteLine("Found method: {0}", mInfo)

        ' Get MethodA(ByRef r As Integer)
        mInfo = GetType(Program).GetMethod("MethodA", New Type() {GetType(Integer).MakeByRefType})
        Console.WriteLine("Found method: {0}", mInfo)

        ' Get MethodA(i As Integer, ByRef r As Integer)
        mInfo = GetType(Program).GetMethod("MethodA", New Type() {GetType(Integer), _
            GetType(Integer).MakeByRefType})
        Console.WriteLine("Found method: {0}", mInfo)

    End Sub
End Class

MethodInfo Im folgenden Beispiel werden Objekte abgerufen, die die Add Methoden eines nicht generischen Typs (der ArrayList -Klasse), ein offener generischer Typ ( List<T> die-Klasse) und ein geschlossener generischer Typ List(Of String) (der-Typ) darstellen.The following example retrieves MethodInfo objects that represent the Add methods of a non-generic type (the ArrayList class), an open generic type (the List<T> class), and a closed generic type (the List(Of String) type.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      // Get a Type object that represents a non-generic type.
      GetAddMethod(typeof(ArrayList));

      var list = new List<String>();
      // Get a Type object that represents a constructed generic type.
      Type closed = list.GetType();
      GetAddMethod(closed);
      
      // Get a Type object that represents an open generic type.
      Type open = typeof(List<>);
      GetAddMethod(open);
   }

   private static void GetAddMethod(Type typ)
   {
      MethodInfo method;
      // Determine if this is a generic type.
      if (typ.IsGenericType) {
         // Is it an open generic type?
         if (typ.ContainsGenericParameters)
            method = typ.GetMethod("Add", typ.GetGenericArguments());
         // Get closed generic type arguments.
         else
            method = typ.GetMethod("Add", typ.GenericTypeArguments);
      }
      // This is not a generic type.
      else {
         method = typ.GetMethod("Add", new Type[] { typeof(Object) } );
      }

      // Test if an Add method was found.
      if (method == null) { 
         Console.WriteLine("No Add method found.");
         return;
      }   
      
      Type t = method.ReflectedType;
      Console.Write("{0}.{1}.{2}(", t.Namespace, t.Name, method.Name);
      ParameterInfo[] parms = method.GetParameters();
      for (int ctr = 0; ctr < parms.Length; ctr++)
         Console.Write("{0}{1}", parms[ctr].ParameterType.Name, 
                       ctr < parms.Length - 1 ? ", " : "");

      Console.WriteLine(")");
   }   
}
// The example displays the following output:
//       System.Collections.ArrayList.Add(Object)
//       System.Collections.Generic.List`1.Add(String)
//       System.Collections.Generic.List`1.Add(T)
Imports System.Collections
Imports System.Collections.Generic
Imports System.Reflection

Module Example
   Public Sub Main()
      ' Get a Type object that represents a non-generic type.
      GetAddMethod(GetType(ArrayList))
      
      Dim list As New List(Of String)()
      ' Get a Type object that represents a constructed generic type.
      Dim closed As Type = list.GetType()
      GetAddMethod(closed)
      
      ' Get a Type object that represents an open generic type.
      Dim open As Type = GetType(List(Of))
      GetAddMethod(open)
   End Sub
   
   Private Sub GetAddMethod(typ As Type)
      Dim method As MethodInfo
      ' Determine if this is a generic type.
      If typ.IsGenericType Then
         ' Is it an open generic type?
         If typ.ContainsGenericParameters Then
            method = typ.GetMethod("Add", typ.GetGenericArguments())
         ' Get closed generic type arguments.
         Else
            method = typ.GetMethod("Add", typ.GenericTypeArguments)
         End If
      ' This is not a generic type.
      Else
         method = typ.GetMethod("Add", { GetType(Object) } )
      End If
      ' Test if an Add method was found.
      If method Is Nothing Then 
         Console.WriteLine("No Add method found.")
         Exit Sub
      End If   

      Dim t As Type = method.ReflectedType
      Console.Write("{0}.{1}.{2}(", t.Namespace, t.Name, method.Name)
      Dim params() As ParameterInfo = method.GetParameters()
      For ctr As Integer = 0 To params.Length - 1
         Console.Write("{0}{1}", params(ctr).ParameterType.Name, 
                       If(ctr < params.Length - 1, ", ", ""))
      Next
      Console.WriteLine(")")
   End Sub
End Module
' The example displays the following output:
'       System.Collections.ArrayList.Add(Object)
'       System.Collections.Generic.List`1.Add(String)
'       System.Collections.Generic.List`1.Add(T)

Im Beispiel wird eine GetAddMethod -Methode definiert, die das MethodInfo entsprechende-Objekt abruft.The example defines a GetAddMethod method that retrieves the appropriate MethodInfo object. Um das types Argument für einen offenen generischen Typ bereitzustellen, wird Type.GetGenericArguments die-Methode aufgerufen.To provide the types argument for an open generic type, it calls the Type.GetGenericArguments method. Um das types Argument für einen geschlossenen generischen Typ bereitzustellen, ruft es den Wert Type.GenericTypeArguments der-Eigenschaft ab.To provide the types argument for a closed generic type, it retrieves the value of the Type.GenericTypeArguments property.

Hinweise

Beim Suchen nach name wird die Groß-/Kleinschreibung beachtet.The search for name is case-sensitive. Die Suche umfasst öffentliche statische und öffentliche Instanzmethoden.The search includes public static and public instance methods.

Hinweis

Sie können Parameter nicht weglassen, wenn Sie Konstruktoren und Methoden suchen.You cannot omit parameters when looking up constructors and methods. Beim Aufrufen von können Sie nur Parameter weglassen.You can only omit parameters when invoking.

Wenn der aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese MethodInfo Methode den mit den Typparametern zurück, die durch die entsprechenden Typargumente ersetzt werden.If the current Type represents a constructed generic type, this method returns the MethodInfo with the type parameters replaced by the appropriate type arguments.

Wenn der aktuelle Type einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die Methoden der Klassen Einschränkung oder die Methoden Object von, wenn keine Klassen Einschränkung vorhanden ist.If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the methods of the class constraint, or the methods of Object if there is no class constraint.

Hinweis

Der name -Parameter darf keine Typargumente enthalten.The name parameter cannot include type arguments. C# Der Code GetMethod("MyGenericMethod<int>") sucht beispielsweise nach einer Methode mit dem Textnamen "MyGenericMethod<int>" und nicht nach einer Methode mit dem Namen MyGenericMethod , die ein generisches Argument vom intTyp aufweist.For example, the C# code GetMethod("MyGenericMethod<int>") searches for a method with the text name "MyGenericMethod<int>", rather than for a method named MyGenericMethod that has one generic argument of type int. Verwenden GetMethod("MyGenericMethod") Sie stattdessen mit dem entsprechenden Parameter types im Array.Instead, use GetMethod("MyGenericMethod") with the appropriate parameter in the types array.

Siehe auch

GetMethod(String, Int32, Type[])

public:
 System::Reflection::MethodInfo ^ GetMethod(System::String ^ name, int genericParameterCount, cli::array <Type ^> ^ types);
public System.Reflection.MethodInfo GetMethod (string name, int genericParameterCount, Type[] types);
member this.GetMethod : string * int * Type[] -> System.Reflection.MethodInfo
Public Function GetMethod (name As String, genericParameterCount As Integer, types As Type()) As MethodInfo

Parameter

name
String
genericParameterCount
Int32
types
Type[]

Gibt zurück

GetMethod(String, BindingFlags)

Sucht die angegebene Methode unter Verwendung der angegebenen Bindungseinschränkungen.Searches for the specified method, using the specified binding constraints.

public:
 virtual System::Reflection::MethodInfo ^ GetMethod(System::String ^ name, System::Reflection::BindingFlags bindingAttr);
public System.Reflection.MethodInfo GetMethod (string name, System.Reflection.BindingFlags bindingAttr);
abstract member GetMethod : string * System.Reflection.BindingFlags -> System.Reflection.MethodInfo
override this.GetMethod : string * System.Reflection.BindingFlags -> System.Reflection.MethodInfo
Public Function GetMethod (name As String, bindingAttr As BindingFlags) As MethodInfo

Parameter

name
String

Die Zeichenfolge, die den Namen der abzurufenden Methode enthält.The string containing the name of the method to get.

bindingAttr
BindingFlags

Eine bitweise Kombination der Enumerationswerte, die angeben, wie die Suche durchgeführt wird.A bitwise combination of the enumeration values that specify how the search is conducted.

- oder --or- Default, damit null zurückgegeben wird.Default to return null.

Gibt zurück

Ein Objekt, das die Methode darstellt, die den angegebenen Anforderungen entspricht, sofern diese gefunden wird. Andernfalls null.An object representing the method that matches the specified requirements, if found; otherwise, null.

Implementiert

Ausnahmen

Es wurden mehrere Methoden gefunden, die den angegebenen Namen aufweisen und den angegebenen Bindungseinschränkungen entsprechen.More than one method is found with the specified name and matching the specified binding constraints.

name ist null.name is null.

Beispiele

Im folgenden Beispiel wird die Methode abgerufen, die mit den angegebenen Bindungsflags übereinstimmt.The following example gets the method that matches the specified binding flags.

using namespace System;
using namespace System::Reflection;
public ref class Program
{

    public:

        // Method to get:
        void MethodA() { }

    };

    int main()
    {

        // Get MethodA()
        MethodInfo^ mInfo = Program::typeid->GetMethod("MethodA",
            static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance));
        Console::WriteLine("Found method: {0}", mInfo );

    }

using System;
using System.Reflection;

class Program
{

    // Method to get:
    public void MethodA() { }


    static void Main(string[] args)
    {

        // Get MethodA()
        MethodInfo mInfo = typeof(Program).GetMethod("MethodA",
            BindingFlags.Public | BindingFlags.Instance);
        Console.WriteLine("Found method: {0}", mInfo);

    }
}

Imports System.Reflection

Class Program

    ' Method to get:
    Public Sub MethodA()
    End Sub


    Public Shared Sub Main(ByVal args() As String)

        ' Get MethodA()
        Dim mInfo As MethodInfo = GetType(Program).GetMethod("MethodA", _
            BindingFlags.Public Or BindingFlags.Instance)
        Console.WriteLine("Found method: {0}", mInfo)

    End Sub
End Class

Hinweise

Die folgenden BindingFlags Filterflags können verwendet werden, um zu definieren, welche Methoden in die Suche eingeschlossen werden sollen:The following BindingFlags filter flags can be used to define which methods to include in the search:

Die folgenden BindingFlags Modifiziererflags können verwendet werden, um die Funktionsweise der Suche zu ändern:The following BindingFlags modifier flags can be used to change how the search works:

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.See System.Reflection.BindingFlags for more information.

Wenn eine Methode überladen wird und mehr als eine Überladung die durch das bindingAttr Argument angegebenen Einschränkungen erfüllt, löst die Methode eine AmbiguousMatchException Ausnahme aus.If a method is overloaded and more than one overload meets the constraints specified by the bindingAttr argument, the method throws an AmbiguousMatchException exception. Im folgenden Beispiel wird eine Ausnahme ausgelöst:In the following example, an exception is thrown because:

  • Der TestClass -Typ verfügt über zwei öffentliche Instanzüberladungen DisplayValue der DisplayValue(String) - DisplayValue(String, Object[])Methode, und.The TestClass type has two public instance overloads of the DisplayValue method, DisplayValue(String) and DisplayValue(String, Object[]).

  • Der TestClass -Typ verfügt über zwei öffentliche Instanzüberladungen Equals der-Methode, Objectvon denen einer geerbt Equals(TestClass) wird Equals(Object): und.The TestClass type has two public instance overloads of the Equals method, one of which is inherited from Object: Equals(TestClass) and Equals(Object).

using System;
using System.Reflection;

public class TestClass
{
   public void DisplayValue(String s)
   {
      Console.WriteLine(s);
   }
   
   public void DisplayValue(String s, params Object[] values)
   {
      Console.WriteLine(s, values);
   }
   
   public static bool Equals(TestClass t1, TestClass t2)
   {
      return Object.ReferenceEquals(t1, t2);
   }
   
   public bool Equals(TestClass t) 
   {
      return Object.ReferenceEquals(this, t);
   }          
}

public class Example
{
   public static void Main()
   {
      Type t = typeof(TestClass);
      
      RetrieveMethod(t, "DisplayValue", BindingFlags.Public | BindingFlags.Instance);

      RetrieveMethod(t, "Equals", BindingFlags.Public | BindingFlags.Instance);
      
      RetrieveMethod(t, "Equals", BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
      
      RetrieveMethod(t, "Equals", BindingFlags.Public | BindingFlags.Static);
   }
   
   private static void RetrieveMethod(Type t, String name, BindingFlags flags)
   {
      try {
         MethodInfo m = t.GetMethod(name, flags);
         if (m != null) {
            Console.Write("{0}.{1}(", t.Name, m.Name);
            ParameterInfo[] parms= m.GetParameters();
            for (int ctr = 0; ctr <parms.Length; ctr++) {
               Console.Write(parms[ctr].ParameterType.Name);
               if (ctr < parms.Length - 1) 
                  Console.Write(", ");

            }
            Console.WriteLine(")");
         }
         else {
            Console.WriteLine("Method not found");
         }
      }
      catch (AmbiguousMatchException) {
         Console.WriteLine("The following duplicate matches were found:");
         MethodInfo[] methods = t.GetMethods(flags);
         foreach (var method in methods) {
            if (method.Name != name) continue;

            Console.Write("   {0}.{1}(", t.Name, method.Name);
            ParameterInfo[] parms = method.GetParameters();
            for (int ctr = 0; ctr < parms.Length; ctr++) {
               Console.Write(parms[ctr].ParameterType.Name);
               if (ctr < parms.Length - 1) 
                  Console.Write(", ");

            }
            Console.WriteLine(")");
         } 
      }         
      Console.WriteLine();
   }
}
// The example displays the following output:
//       The following duplicate matches were found:
//          TestClass.DisplayValue(String)
//          TestClass.DisplayValue(String, Object[])
//       
//       The following duplicate matches were found:
//          TestClass.Equals(TestClass)
//          TestClass.Equals(Object)
//       
//       TestClass.Equals(TestClass)
//       
//       TestClass.Equals(TestClass, TestClass)
Imports System.Reflection

Public Class TestClass
   Public Sub DisplayValue(s As String)
      Console.WriteLine(s)
   End Sub
   
   Public Sub DisplayValue(s As String, ParamArray values() As Object)
      Console.WriteLine(s, values)
   End Sub
   
   Public Overloads Shared Function Equals(t1 As TestClass, t2 As TestClass) As Boolean
      Return Object.ReferenceEquals(t1, t2)
   End Function
   
   Public Overloads Function Equals(t As TestClass) As Boolean
      Return Object.ReferenceEquals(Me, t)
   End Function          
End Class

Module Example
   Public Sub Main()
      Dim t As Type = GetType(TestClass)
      
      RetrieveMethod(t, "DisplayValue", BindingFlags.Public Or BindingFlags.Instance)

      RetrieveMethod(t, "Equals", BindingFlags.Public Or BindingFlags.Instance)
      
      RetrieveMethod(t, "Equals", BindingFlags.Public Or BindingFlags.Instance Or BindingFlags.DeclaredOnly)
      
      RetrieveMethod(t, "Equals", BindingFlags.Public Or BindingFlags.Static)
   End Sub
   
   Public Sub RetrieveMethod(t As Type, name As String, flags As BindingFlags)
      Try
         Dim m As MethodInfo = t.GetMethod(name, flags)
         If m IsNot Nothing Then
            Console.Write("{0}.{1}(", t.Name, m.Name)
           Dim parms() As ParameterInfo = m.GetParameters()
            For ctr As Integer = 0 To parms.Length - 1
               Console.Write(parms(ctr).ParameterType.Name)
               if ctr < parms.Length - 1 Then 
                  Console.Write(", ")
               End If      
            Next
            Console.WriteLine(")")
         Else
            Console.WriteLine("Method not found")
         End If
      Catch e As AmbiguousMatchException
         Console.WriteLine("The following duplicate matches were found:")
         Dim methods() As MethodInfo = t.GetMethods(flags)
         For Each method In methods
            If method.Name <> name Then Continue For

            Console.Write("   {0}.{1}(", t.Name, method.Name)
            Dim parms() As ParameterInfo = method.GetParameters()
            For ctr As Integer = 0 To parms.Length - 1
               Console.Write(parms(ctr).ParameterType.Name)
               if ctr < parms.Length - 1 Then 
                  Console.Write(", ")
               End If      
            Next
            Console.WriteLine(")")
         Next 
      End Try         
      Console.WriteLine()
   End Sub
End Module
' The example displays the following output:
'       The following duplicate matches were found:
'          TestClass.DisplayValue(String)
'          TestClass.DisplayValue(String, Object[])
'       
'       The following duplicate matches were found:
'          TestClass.Equals(TestClass)
'          TestClass.Equals(Object)
'       
'       TestClass.Equals(TestClass)
'       
'       TestClass.Equals(TestClass, TestClass)

Sie können eine der folgenden Aktionen ausführen, um eine bestimmte Methode abzurufen:You can do one of the following to retrieve a specific method:

  • Ändern Sie die Bindungs Einschränkungen.Change the binding constraints. Im vorherigen Beispiel wird beim Versuch, eine öffentliche Instanzmethode Equals abzurufen, die vom-Typ deklariert und nicht geerbt wurde, erfolgreich Equals(TestClass)abgerufen.In the previous example, attempting to retrieve a public instance Equals method that is declared by the type and not inherited successfully retrieves Equals(TestClass).

  • Aufrufen einer über GetMethod Ladung der-Methode, die types einen-Parameter enthält, der die Typen der Parameter der Methode definiert.Call an overload of the GetMethod method that includes a types parameter which defines the types of the method's parameters.

  • Rufen Sie GetMethods(BindingFlags) die-Methode auf, um ein Array abzurufen, das alle Methoden enthält, die zu einem Typ gehören, der über die angegebenen Bindungs Attribute verfügt.Call the GetMethods(BindingFlags) method to retrieve an array containing all of the methods belonging to a type that have the specified binding attributes. Anschließend können Sie Sie durchlaufen, um die doppelten Methoden mit namedem Namen zu identifizieren.You can then iterate it to identify the duplicate methods named name. Diese Vorgehensweise wird im vorherigen Beispiel Handler für die AmbiguousMatchException Ausnahme veranschaulicht.This approach is illustrated in the previous example's handler for the AmbiguousMatchException exception.

Wenn der aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese MethodInfo Methode den mit den Typparametern zurück, die durch die entsprechenden Typargumente ersetzt werden.If the current Type represents a constructed generic type, this method returns the MethodInfo with the type parameters replaced by the appropriate type arguments.

Wenn der aktuelle Type einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die Methoden der Klassen Einschränkung oder die Methoden Object von, wenn keine Klassen Einschränkung vorhanden ist.If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the methods of the class constraint, or the methods of Object if there is no class constraint.

Hinweis

Fügen Sie bei generischen Methoden nicht die Typargumente in nameein.For generic methods, do not include the type arguments in name. C# Der Code GetMember("MyMethod<int>") sucht z. b. nach einem Member mit dem TextnamenMyMethod<int>"" und nicht nach einer Methode mit MyMethod dem Namen, die ein generisches intArgument vom Typ aufweist.For example, the C# code GetMember("MyMethod<int>") searches for a member with the text name "MyMethod<int>", rather than for a method named MyMethod that has one generic argument of type int.

Siehe auch

GetMethod(String)

Sucht die öffentliche Methode mit dem angegebenen Namen.Searches for the public method with the specified name.

public:
 virtual System::Reflection::MethodInfo ^ GetMethod(System::String ^ name);
public System.Reflection.MethodInfo GetMethod (string name);
abstract member GetMethod : string -> System.Reflection.MethodInfo
override this.GetMethod : string -> System.Reflection.MethodInfo
Public Function GetMethod (name As String) As MethodInfo

Parameter

name
String

Die Zeichenfolge, die den Namen der abzurufenden öffentlichen Methode enthält.The string containing the name of the public method to get.

Gibt zurück

Ein Objekt, das die öffentliche Methode mit dem angegebenen Namen darstellt, sofern gefunden, andernfalls null.An object that represents the public method with the specified name, if found; otherwise, null.

Implementiert

Ausnahmen

Es wurden mehrere Methoden mit dem angegebenen Namen gefunden.More than one method is found with the specified name.

name ist null.name is null.

Beispiele

Im folgenden Beispiel wird eine Methode mit MethodAdem Namen abgerufen.The following example gets a method named MethodA.

using namespace System;
using namespace System::Reflection;
public ref class Program
{

    public:

        // Method to get:
        void MethodA() { }

    };

    int main()
    {

        // Get MethodA()
        MethodInfo^ mInfo = Program::typeid->GetMethod("MethodA");
        Console::WriteLine("Found method: {0}", mInfo );

    }

using System;
using System.Reflection;

class Program
{

    // Method to get:
    public void MethodA() { }


    static void Main(string[] args)
    {

        // Get MethodA()
        MethodInfo mInfo = typeof(Program).GetMethod("MethodA");
        Console.WriteLine("Found method: {0}", mInfo);

    }
}

Imports System.Reflection

Class Program

    ' Method to get:
    Public Sub MethodA()
    End Sub


    Public Shared Sub Main(ByVal args() As String)

        ' Get MethodA()
        Dim mInfo As MethodInfo = GetType(Program).GetMethod("MethodA")
        Console.WriteLine("Found method: {0}", mInfo)

    End Sub
End Class

Hinweise

Beim Suchen nach name wird die Groß-/Kleinschreibung beachtet.The search for name is case-sensitive. Die Suche umfasst öffentliche statische und öffentliche Instanzmethoden.The search includes public static and public instance methods.

Wenn eine Methode überladen wird und mehr als eine öffentliche Methode enthält, GetMethod(String) löst die Methode AmbiguousMatchException eine Ausnahme aus.If a method is overloaded and has more than one public method, the GetMethod(String) method throws an AmbiguousMatchException exception. Im folgenden Beispiel wird eine Ausnahme ausgelöst, da mehrere öffentliche über Ladungen der Int32.ToString -Methode vorhanden sind.In the following example, an exception is thrown because there is more than one public overload of the Int32.ToString method. Andererseits Person.ToString kann die Object.ToString - GetMethod(String) Methode das MethodInfo -Objekt abrufen, da die-Methode überschreibt und daher nicht überladen ist.On the other hand, because the Person.ToString method overrides Object.ToString and therefore is not overloaded, the GetMethod(String) method is able to retrieve the MethodInfo object.

using System;
using System.Reflection;

public class Person
{
   public String FirstName;
   public String LastName;
   
   public override String ToString()
   {
      return (FirstName + " " + LastName).Trim();
   }
}

public class Example
{
   public static void Main()
   {
      Type t = typeof(Person);
      RetrieveMethod(t, "ToString");
      
      t = typeof(Int32);
      RetrieveMethod(t, "ToString");
   }

   private static void RetrieveMethod(Type t, String name)
   {   
      try {
         MethodInfo m = t.GetMethod(name);
         if (m != null) 
            Console.WriteLine("{0}.{1}: {2} method", m.ReflectedType.Name,
                              m.Name, m.IsStatic ? "Static" : "Instance");    
         else
            Console.WriteLine("{0}.ToString method not found", t.Name);
      }
      catch (AmbiguousMatchException) {
         Console.WriteLine("{0}.{1} has multiple public overloads.", 
                           t.Name, name);
      }
   }
}
// The example displays the following output:
//       Person.ToString: Instance method
//       Int32.ToString has multiple public overloads.
Imports System.Reflection

Public Class Person
   Public FirstName As String
   Public LastName As String
   
   Public Overrides Function ToString() As String
      Return (FirstName + " " + LastName).Trim()
   End Function
End Class

Module Example
   Public Sub Main()
      Dim t As Type = GetType(Person)
      RetrieveMethod(t, "ToString")
      
      t = GetType(Int32)
      RetrieveMethod(t, "ToString")
   End Sub
   
   Private Sub RetrieveMethod(t As Type, name As String)   
      Try
         Dim m As MethodInfo = t.GetMethod(name)
         If m IsNot Nothing Then
            Console.WriteLine("{0}.{1}: {2} method", m.ReflectedType.Name,
                              m.Name, If(m.IsStatic, "Static", "Instance"))    
         Else
            Console.WriteLine("{0}.ToString method not found", t.Name)
         End If   
      Catch e As AmbiguousMatchException
         Console.WriteLine("{0}.{1} has multiple public overloads.", 
                           t.Name, name)
      End Try
   End Sub
End Module
' The example displays the following output:
'       Person.ToString: Instance method
'       Int32.ToString has multiple public overloads.

Sie können eine der folgenden Aktionen ausführen, um eine bestimmte Methode abzurufen:You can do one of the following to retrieve a specific method:

  • Nennen Sie GetMethod(String, BindingFlags) die-Methode, bindingAttr und geben Sie ein Argument an, das die Methode eindeutig identifiziert.Call the GetMethod(String, BindingFlags) method and specify a bindingAttr argument that uniquely identifies the method. Wenn z. b. die Ausnahme ausgelöst wird, weil ein Typ über eine statische und eine instanzüberladung verfügt bindingAttr , können BindingFlags.InstanceSie ein-Argument von Or BindingFlags.Instanceangeben.For example, if the exception is thrown because a type has a static and an instance overload, you can specify a bindingAttr argument of BindingFlags.InstanceOrBindingFlags.Instance.

  • Aufrufen einer über GetMethod Ladung der-Methode, die types einen-Parameter enthält, der die Typen der Parameter der Methode definiert.Call an overload of the GetMethod method that includes a types parameter which defines the types of the method's parameters.

  • Rufen Sie GetMethods() die-Methode auf, um ein Array mit allen öffentlichen Methoden abzurufen, die zu einem Typ gehören.Call the GetMethods() method to retrieve an array containing all of the public methods belonging to a type. Anschließend können Sie Sie durchlaufen, um die doppelten Methoden mit namedem Namen zu identifizieren.You can then iterate it to identify the duplicate methods named name.

Wenn der aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese MethodInfo Methode den mit den Typparametern zurück, die durch die entsprechenden Typargumente ersetzt werden.If the current Type represents a constructed generic type, this method returns the MethodInfo with the type parameters replaced by the appropriate type arguments.

Wenn der aktuelle Type einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die Methoden der Klassen Einschränkung oder die Methoden Object von, wenn keine Klassen Einschränkung vorhanden ist.If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the methods of the class constraint, or the methods of Object if there is no class constraint.

Hinweis

Fügen Sie bei generischen Methoden nicht die Typargumente in nameein.For generic methods, do not include the type arguments in name. C# Der Code GetMember("MyMethod<int>") sucht z. b. nach einem Member mit dem TextnamenMyMethod<int>"" und nicht nach einer Methode mit MyMethod dem Namen, die ein generisches intArgument vom Typ aufweist.For example, the C# code GetMember("MyMethod<int>") searches for a member with the text name "MyMethod<int>", rather than for a method named MyMethod that has one generic argument of type int.

Siehe auch

GetMethod(String, Type[], ParameterModifier[])

Sucht die angegebene öffentliche Methode, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen.Searches for the specified public method whose parameters match the specified argument types and modifiers.

public:
 virtual System::Reflection::MethodInfo ^ GetMethod(System::String ^ name, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
public System.Reflection.MethodInfo GetMethod (string name, Type[] types, System.Reflection.ParameterModifier[] modifiers);
abstract member GetMethod : string * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo
override this.GetMethod : string * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo
Public Function GetMethod (name As String, types As Type(), modifiers As ParameterModifier()) As MethodInfo

Parameter

name
String

Die Zeichenfolge, die den Namen der abzurufenden öffentlichen Methode enthält.The string containing the name of the public method to get.

types
Type[]

Ein Array von Type-Objekten, das die Anzahl, die Reihenfolge und den Typ der Parameter der abzurufenden Methode darstellt.An array of Type objects representing the number, order, and type of the parameters for the method to get.

- oder --or- Ein leeres Array von Type-Objekten (bereitgestellt vom EmptyTypes-Feld) zum Abrufen einer Methode, die keine Parameter akzeptiert.An empty array of Type objects (as provided by the EmptyTypes field) to get a method that takes no parameters.

modifiers
ParameterModifier[]

Ein Array von ParameterModifier-Objekten, die die Attribute darstellen, die dem entsprechenden Element im types-Array zugeordnet sind.An array of ParameterModifier objects representing the attributes associated with the corresponding element in the types array. Darf nur bei Aufrufen über COM-Interop verwendet werden. Es werden außerdem nur Parameter berücksichtigt, die als Verweis übergeben werden.To be only used when calling through COM interop, and only parameters that are passed by reference are handled. Der Standardbinder verarbeitet diesen Parameter nicht.The default binder does not process this parameter.

Gibt zurück

Ein Objekt, das die öffentliche Methode darstellt, die den angegebenen Anforderungen entspricht, sofern gefunden, andernfalls null.An object representing the public method that matches the specified requirements, if found; otherwise, null.

Implementiert

Ausnahmen

Es wurden mehrere Methoden mit dem angegebenen Namen und den angegebenen Parametern gefunden.More than one method is found with the specified name and specified parameters.

name ist null.name is null.

- oder --or- types ist null.types is null.

- oder --or- Eines der Elemente in types ist null.One of the elements in types is null.

types ist mehrdimensional.types is multidimensional.

- oder --or- modifiers ist mehrdimensional.modifiers is multidimensional.

Hinweise

Obwohl der Standard ParameterModifier Binder nicht verarbeitet (der modifiers -Parameter), können Sie die abstrakte System.Reflection.Binder -Klasse verwenden, um einen benutzerdefinierten Binder zu modifiersschreiben, der verarbeitet.Although the default binder does not process ParameterModifier (the modifiers parameter), you can use the abstract System.Reflection.Binder class to write a custom binder that does process modifiers. ParameterModifierwird nur beim Aufrufen über COM-Interop verwendet, und nur Parameter, die als Verweis übermittelt werden, werden behandelt.ParameterModifier is only used when calling through COM interop, and only parameters that are passed by reference are handled.

Beim Suchen nach name wird die Groß-/Kleinschreibung beachtet.The search for name is case-sensitive. Die Suche umfasst öffentliche statische und öffentliche Instanzmethoden.The search includes public static and public instance methods.

Hinweis

Sie können Parameter nicht weglassen, wenn Sie Konstruktoren und Methoden suchen.You cannot omit parameters when looking up constructors and methods. Beim Aufrufen von können Sie nur Parameter weglassen.You can only omit parameters when invoking.

Wenn der aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese MethodInfo Methode den mit den Typparametern zurück, die durch die entsprechenden Typargumente ersetzt werden.If the current Type represents a constructed generic type, this method returns the MethodInfo with the type parameters replaced by the appropriate type arguments.

Wenn der aktuelle Type einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die Methoden der Klassen Einschränkung oder die Methoden Object von, wenn keine Klassen Einschränkung vorhanden ist.If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the methods of the class constraint, or the methods of Object if there is no class constraint.

Hinweis

Fügen Sie bei generischen Methoden nicht die Typargumente in nameein.For generic methods, do not include the type arguments in name. C# Der Code GetMethod("MyMethod<int>") sucht z. b. nach einem Member mit dem TextnamenMyMethod<int>"" und nicht nach einer Methode mit MyMethod dem Namen, die ein generisches intArgument vom Typ aufweist.For example, the C# code GetMethod("MyMethod<int>") searches for a member with the text name "MyMethod<int>", rather than for a method named MyMethod that has one generic argument of type int. Verwenden GetMethod("MyMethod") Sie stattdessen mit dem entsprechenden Parameter types im Array.Instead, use GetMethod("MyMethod") with the appropriate parameter in the types array.

Siehe auch

Gilt für: