Type.IsGenericParameter 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取一个值,该值指示当前 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
属性值
如果 Type 对象表示泛型类型定义或泛型方法定义的类型参数,则为 true
;否则为 false
。
示例
下面的示例使用 IsGenericParameter 属性测试泛型类型中的泛型类型参数。
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
注解
Type 可以通过调用 GetGenericArguments Type 表示泛型类型定义的对象的方法或 GetGenericArguments MethodInfo 表示泛型方法定义的对象的方法来获取表示泛型类型参数的对象。
对于泛型类型或方法定义, IsGenericParameter 属性
true
为所得数组的每个元素返回。对于封闭式构造类型或方法, IsGenericParameter 属性
false
为该方法返回的数组的每个元素返回 GetGenericArguments 。对于开放构造的类型或方法,数组的某些元素可能是特定类型,而其他元素可能为类型参数。 IsGenericParameter 为类型
false
true
参数和类型参数返回。 属性的代码示例 ContainsGenericParameters 演示了混合类型和类型参数的泛型类。
有关泛型反射中使用的术语的固定条件列表,请参阅 IsGenericType 属性注解。