Type.IsGenericParameter Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém um valor que indica se a corrente Type representa um parâmetro de tipo na definição de um tipo ou método genérico.
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
Valor de Propriedade
true se o Type objeto representa um parâmetro de tipo de uma definição genérica de tipo ou de uma definição genérica de método; caso contrário, false.
Exemplos
O exemplo seguinte utiliza a IsGenericParameter propriedade para testar parâmetros genéricos de tipo num tipo genérico.
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
Observações
Type Objetos que representam parâmetros genéricos de tipo podem ser obtidos chamando o GetGenericArguments método de um Type objeto que representa uma definição de tipo genérica, ou o GetGenericArguments método de um MethodInfo objeto que representa uma definição genérica de método.
Para uma definição genérica de tipo ou método, a IsGenericParameter propriedade devolve
truepara cada elemento do array resultante.Para um tipo ou método construído fechado, a IsGenericParameter propriedade retorna
falsepara cada elemento do array devolvido pelo GetGenericArguments método.Para um tipo ou método construído aberto, alguns elementos do array podem ser tipos específicos e outros parâmetros de tipo. IsGenericParameter retorna
falsepara os tipos etruepara os parâmetros de tipo. O exemplo de código para a ContainsGenericParameters propriedade demonstra uma classe genérica com uma mistura de tipos e parâmetros de tipo.
Para obter uma lista das condições invariáveis para termos usados em reflexão genérica, consulte as observações da propriedade IsGenericType.