Type.IsGenericParameter Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 da propriedade
true se o Type objeto representa um parâmetro de tipo de uma definição de tipo genérico ou uma definição de método genérico; caso contrário, false.
Exemplos
O exemplo a seguir usa a IsGenericParameter propriedade para testar parâmetros de tipo genérico em um 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
Comentários
Type os objetos que representam parâmetros de tipo genérico podem ser obtidos chamando o GetGenericArguments método de um Type objeto que representa uma definição de tipo genérico ou o GetGenericArguments método de um MethodInfo objeto que representa uma definição de método genérico.
Para um tipo genérico ou definição de método, a IsGenericParameter propriedade retorna
truepara cada elemento da matriz resultante.Para um tipo ou método construído fechado, a IsGenericParameter propriedade retorna
falsepara cada elemento da matriz retornado pelo GetGenericArguments método.Para um tipo ou método construído aberto, alguns elementos da matriz podem ser tipos específicos e outros podem ser parâmetros de tipo. IsGenericParameter retorna
falsepara os tipos etruepara os parâmetros de tipo. O exemplo de código da ContainsGenericParameters propriedade demonstra uma classe genérica com uma mistura de tipos e parâmetros de tipo.
Para obter uma lista das condições invariantes para termos usados na reflexão genérica, veja as observações da propriedade IsGenericType.