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 примечаниях свойств.