Type.IsGenericParameter Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un valore che indica se l'oggetto Type corrente rappresenta un parametro di tipo nella definizione di un tipo o metodo generico.
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
Valore della proprietà
true
se l'oggetto Type rappresenta un parametro di tipo di una definizione di tipo o metodo generico. In caso contrario, false
.
Esempio
Nell'esempio seguente viene utilizzata IsGenericParameter la proprietà per verificare la ricerca di parametri di tipo generico in un tipo generico.
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
Commenti
Type Gli oggetti che rappresentano parametri di tipo generico possono essere ottenuti chiamando il metodo di un oggetto che rappresenta una definizione di tipo generico o il metodo di un oggetto che rappresenta una definizione GetGenericArguments Type di metodo GetGenericArguments MethodInfo generico.
Per una definizione di tipo o metodo generico, IsGenericParameter la proprietà restituisce per ogni elemento della matrice
true
risultante.Per un tipo o un metodo costruito chiuso, IsGenericParameter la proprietà restituisce per ogni elemento della matrice
false
restituita dal metodo GetGenericArguments .Per un tipo o un metodo costruito aperto, alcuni elementi della matrice potrebbero essere tipi specifici e altri possono essere parametri di tipo. IsGenericParameter restituisce
false
per i tipi e per i parametri ditrue
tipo. L'esempio di codice ContainsGenericParameters per la proprietà illustra una classe generica con una combinazione di tipi e parametri di tipo.
Per un elenco delle condizioni invariabili relative ai termini usati dal processo di reflection generico, vedere i commenti sulla proprietà IsGenericType.