Type.IsGenericParameter Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá hodnotu určující, zda aktuální představuje parametr typu v Type definici obecného typu nebo metody.
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
Hodnota vlastnosti
true
Pokud objekt Type představuje parametr typu definice obecného typu nebo definice obecné metody, jinak false
hodnota .
Příklady
Následující příklad používá vlastnost IsGenericParameter k otestování parametrů obecného typu v obecném typu.
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
Poznámky
Type Objekty, které představují parametry obecného typu, lze získat voláním metody objektu, který představuje definici obecného typu, nebo metodou objektu, který představuje GetGenericArguments Type GetGenericArguments MethodInfo definici obecné metody.
Pro obecný typ nebo definici metody IsGenericParameter vrátí vlastnost pro každý prvek
true
výsledného pole.Pro uzavřený konstruovaný typ nebo metodu vrátí vlastnost pro každý prvek pole IsGenericParameter
false
vráceného GetGenericArguments metodou .Pro otevřený konstruovaný typ nebo metodu mohou být některé prvky pole konkrétní typy a jiné mohou být parametry typu. IsGenericParameter vrací
false
pro typy a pro parametrytrue
typu. Příklad kódu pro vlastnost ContainsGenericParameters ukazuje obecnou třídu se kombinaci typů a parametrů typu.
Seznam invariantní podmínek pro termíny používané v obecné reflexi najdete v IsGenericType poznámkách k vlastnostem.