Поделиться через


Type.IsGenericParameter Свойство

Определение

Возвращает значение, указывающее, представляет ли текущий Type параметр типа в определении универсального типа или метода.

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

Значение свойства

true Значение , Type если объект представляет параметр типа определения универсального типа или определения универсального метода; в противном случае false.

Примеры

В следующем примере свойство используется IsGenericParameter для проверки параметров универсального типа в универсальном типе.

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

Комментарии

Type объекты, представляющие параметры универсального типа, можно получить путем вызова GetGenericArguments метода объекта, представляющего определение универсального Type типа, или GetGenericArguments метод объекта, представляющего определение универсального MethodInfo метода.

  • Для универсального типа или определения IsGenericParameter метода свойство возвращается true для каждого элемента результирующего массива.

  • Для закрытого созданного типа или метода IsGenericParameter свойство возвращается false для каждого элемента массива, возвращаемого методом GetGenericArguments .

  • Для открытого созданного типа или метода некоторые элементы массива могут быть определенными типами, а другие — параметрами типа. IsGenericParameter возвращает false типы и true параметры типа. Пример кода для ContainsGenericParameters свойства демонстрирует универсальный класс с сочетанием типов и параметров типа.

Список инвариантных условий терминов, используемых в универсальном отражении, см. в IsGenericType примечаниях свойств.

Применяется к

См. также раздел