Condividi tramite


Type.IsGenericParameter Proprietà

Definizione

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 true per ogni elemento della matrice risultante.

  • Per un tipo o un metodo costruito chiuso, la IsGenericParameter proprietà restituisce false per 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 false per i tipi e true per 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.

Si applica a

Vedi anche