Type.IsGenericParameter Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob der aktuelle Type einen Typparameter einer generischen Typ- oder Methodendefinition darstellt.
public:
abstract property bool IsGenericParameter { bool get(); };
public:
virtual property bool IsGenericParameter { bool get(); };
public abstract bool IsGenericParameter { get; }
public virtual bool IsGenericParameter { get; }
member this.IsGenericParameter : bool
Public MustOverride ReadOnly Property IsGenericParameter As Boolean
Public Overridable ReadOnly Property IsGenericParameter As Boolean
Eigenschaftswert
true
, wenn das Type-Objekt einen Typparameter einer generischen Typ- oder Methodendefinition darstellt, andernfalls false
.
Beispiele
Im folgenden Beispiel wird die IsGenericParameter -Eigenschaft verwendet, um auf generische Typparameter in einem generischen Typ zu testen.
if ( t->IsGenericType )
{
// If this is a generic type, display the type arguments.
//
array<Type^>^typeArguments = t->GetGenericArguments();
Console::WriteLine( L"\tList type arguments ({0}):",
typeArguments->Length );
System::Collections::IEnumerator^ myEnum =
typeArguments->GetEnumerator();
while ( myEnum->MoveNext() )
{
Type^ tParam = safe_cast<Type^>(myEnum->Current);
// If this is a type parameter, display its
// position.
//
if ( tParam->IsGenericParameter )
{
Console::WriteLine(
L"\t\t{0}\t(unassigned - parameter position {1})",
tParam, tParam->GenericParameterPosition );
}
else
{
Console::WriteLine( L"\t\t{0}", tParam );
}
}
}
if (t.IsGenericType)
{
// If this is a generic type, display the type arguments.
//
Type[] typeArguments = t.GetGenericArguments();
Console.WriteLine("\tList type arguments ({0}):",
typeArguments.Length);
foreach (Type tParam in typeArguments)
{
// If this is a type parameter, display its
// position.
//
if (tParam.IsGenericParameter)
{
Console.WriteLine("\t\t{0}\t(unassigned - parameter position {1})",
tParam,
tParam.GenericParameterPosition);
}
else
{
Console.WriteLine("\t\t{0}", tParam);
}
}
}
If t.IsGenericType Then
' If this is a generic type, display the type arguments.
'
Dim typeArguments As Type() = t.GetGenericArguments()
Console.WriteLine(vbTab & "List type arguments (" _
& typeArguments.Length & "):")
For Each tParam As Type In typeArguments
' If this is a type parameter, display its position.
'
If tParam.IsGenericParameter Then
Console.WriteLine(vbTab & vbTab & tParam.ToString() _
& vbTab & "(unassigned - parameter position " _
& tParam.GenericParameterPosition & ")")
Else
Console.WriteLine(vbTab & vbTab & tParam.ToString())
End If
Next tParam
End If
Hinweise
Type -Objekte, die generische Typparameter darstellen, können durch Aufrufen der -Methode eines -Objekts, das eine generische Typdefinition darstellt, oder der -Methode eines -Objekts, das eine generische GetGenericArguments Type GetGenericArguments MethodInfo Methodendefinition darstellt, ermittelt werden.
Bei einer generischen Typ- oder Methodendefinition gibt IsGenericParameter die -Eigenschaft für
true
jedes Element des resultierenden Arrays zurück.Bei einem geschlossenen konstruierten Typ oder einer geschlossenen Methode gibt die -Eigenschaft für jedes Element des Arrays zurück, IsGenericParameter
false
das von der -Methode zurückgegeben GetGenericArguments wird.Bei einem offenen konstruierten Typ oder einer offenen Methode können einige Elemente des Arrays bestimmte Typen und andere Typparameter sein. IsGenericParameter gibt
false
für die Typen und für dietrue
Typparameter zurück. Das Codebeispiel für die ContainsGenericParameters -Eigenschaft veranschaulicht eine generische Klasse mit einer Mischung aus Typen und Typparametern.
Eine Liste der invarianten Bedingungen für Begriffe, für Begriffe, die für die Reflektion mit generischen Methoden verwendet werden, finden Sie in den Hinweisen zur Eigenschaft IsGenericType.