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 corrente Type rappresenta un parametro di tipo nella definizione di un tipo o di un 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 generico o di una definizione di metodo generico; in caso contrario, false.
Esempio
Nell'esempio seguente viene utilizzata la IsGenericParameter proprietà per testare i parametri di tipo generico in un tipo generico.
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.
let typeArguments = t.GetGenericArguments()
printfn $"\tList type arguments ({typeArguments.Length}):"
for tParam in typeArguments do
// If this is a type parameter, display its position.
if tParam.IsGenericParameter then
printfn $"\t\t{tParam}\t(unassigned - parameter position {tParam.GenericParameterPosition})"
else
printfn $"\t\t{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 È possibile ottenere oggetti che rappresentano parametri di tipo generico chiamando il GetGenericArguments metodo di un Type oggetto che rappresenta una definizione di tipo generico o il GetGenericArguments metodo di un MethodInfo oggetto che rappresenta una definizione di metodo generico.
Per una definizione di tipo o metodo generico, la IsGenericParameter proprietà restituisce
trueper ogni elemento della matrice risultante.Per un tipo o un metodo costruito chiuso, la IsGenericParameter proprietà restituisce
falseper ogni elemento della matrice restituita dal GetGenericArguments metodo .Per un tipo o un metodo costruito aperto, alcuni elementi della matrice potrebbero essere tipi specifici e altri potrebbero essere parametri di tipo. IsGenericParameter restituisce
falseper i tipi etrueper i parametri di tipo. L'esempio di codice per la ContainsGenericParameters proprietà illustra una classe generica con una combinazione di tipi e parametri di tipo.
Per un elenco delle condizioni invarianti per i termini usati nella reflection generica, vedere le note sulla proprietà IsGenericType.