MethodInfo.GetGenericArguments Methode

Definitie

Retourneert een matrix met Type objecten die de typeargumenten van een algemene methode of de typeparameters van een algemene methodedefinitie vertegenwoordigen.

public:
 override cli::array <Type ^> ^ GetGenericArguments();
public override Type[] GetGenericArguments();
[System.Runtime.InteropServices.ComVisible(true)]
public override Type[] GetGenericArguments();
override this.GetGenericArguments : unit -> Type[]
[<System.Runtime.InteropServices.ComVisible(true)>]
override this.GetGenericArguments : unit -> Type[]
Public Overrides Function GetGenericArguments () As Type()

Retouren

Type[]

Een matrix van Type objecten die de typeargumenten van een algemene methode of de typeparameters van een algemene methodedefinitie vertegenwoordigen. Retourneert een lege matrix als de huidige methode geen algemene methode is.

Kenmerken

Uitzonderingen

Deze methode wordt niet ondersteund.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de typeargumenten van een algemene methode opgeeft en deze weergeeft.

Dit voorbeeld maakt deel uit van een groter voorbeeld dat is opgegeven voor de MakeGenericMethod methode.

// If this is a generic method, display its type arguments.
//
if (mi.IsGenericMethod)
{
    Type[] typeArguments = mi.GetGenericArguments();

    Console.WriteLine("\tList type arguments ({0}):",
        typeArguments.Length);

    foreach (Type tParam in typeArguments)
    {
        // IsGenericParameter is true only for generic type
        // parameters.
        //
        if (tParam.IsGenericParameter)
        {
            Console.WriteLine("\t\t{0}  parameter position {1}" +
                "\n\t\t   declaring method: {2}",
                tParam,
                tParam.GenericParameterPosition,
                tParam.DeclaringMethod);
        }
        else
        {
            Console.WriteLine("\t\t{0}", tParam);
        }
    }
}
' If this is a generic method, display its type arguments.
'
If mi.IsGenericMethod Then
    Dim typeArguments As Type() = mi.GetGenericArguments()
    
    Console.WriteLine(vbTab & "List type arguments ({0}):", _
        typeArguments.Length)
    
    For Each tParam As Type In typeArguments
        ' IsGenericParameter is true only for generic type
        ' parameters.
        '
        If tParam.IsGenericParameter Then
            Console.WriteLine(vbTab & vbTab _
                & "{0}  parameter position: {1}" _
                & vbCrLf & vbTab & vbTab _
                & "   declaring method: {2}", _
                tParam,  _
                tParam.GenericParameterPosition, _
                tParam.DeclaringMethod)
        Else
            Console.WriteLine(vbTab & vbTab & tParam.ToString())
        End If
    Next tParam
End If

Opmerkingen

De elementen van de geretourneerde matrix bevinden zich in de volgorde waarin ze worden weergegeven in de lijst met typeparameters voor de algemene methode.

  • Als de huidige methode een gesloten samengestelde methode is (dat wil gezegd, de ContainsGenericParameters eigenschap retourneert false), bevat de matrix die door de GetGenericArguments methode wordt geretourneerd de typen die zijn toegewezen aan de algemene typeparameters van de algemene methodedefinitie.

  • Als de huidige methode een algemene methodedefinitie is, bevat de matrix de typeparameters.

  • Als de huidige methode een open samengestelde methode is (dat wil gezegd, de ContainsGenericParameters eigenschap retourneert true) waarin specifieke typen zijn toegewezen aan bepaalde typeparameters en typeparameters van het insluiten van algemene typen zijn toegewezen aan andere typeparameters, bevat de matrix zowel typen als typeparameters. Gebruik de IsGenericParameter eigenschap om ze uit elkaar te vertellen. Zie het codevoorbeeld voor de ContainsGenericParameters eigenschap voor een demonstratie van dit scenario.

Zie de IsGenericMethod eigenschap voor een lijst met invariante voorwaarden voor voorwaarden die specifiek zijn voor algemene methoden. Zie de Type.IsGenericType eigenschap voor een lijst met de invariante voorwaarden voor andere termen die in algemene reflectie worden gebruikt.

Van toepassing op

Zie ook