MethodInfo.GetGenericArguments Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
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.