C# TypeInfo IsGenericParameter

Description

TypeInfo IsGenericParameter Gets a value indicating whether the current Type represents a type parameter in the definition of a generic type or method.

Syntax

TypeInfo.IsGenericParameter has the following syntax.


public virtual bool IsGenericParameter { get; }

Example


using System;/* w w  w . ja  va2 s  .  co  m*/
using System.Reflection;

public interface ITest {}

public class Base {}

public class Test<T,U> 
    where T : Base, ITest 
    where U : class, new() {}

public class Derived : Base, ITest {}

public class Example
{
    public static void Main()
    {
        Type def = typeof(Test<,>);
        Console.WriteLine("\r\nExamining generic type {0}", def);

        Type[] defparams = def.GetGenericArguments();
        foreach (Type tp in defparams)
        {
            Console.WriteLine("\r\nType parameter: {0}", tp.Name);
            Console.WriteLine("\t{0}", ListGenericParameterAttributes(tp));

        }
    }
    private static string ListGenericParameterAttributes(Type t)
    {
        string retval;
        GenericParameterAttributes gpa = t.GenericParameterAttributes;
        GenericParameterAttributes variance = gpa & GenericParameterAttributes.VarianceMask;

        if (t.IsGenericType)
        {
            Type[] typeArguments = t.GetGenericArguments();
        
            foreach (Type tParam in typeArguments)
            {
                if (tParam.IsGenericParameter)
                {
                    Console.WriteLine("\t\t{0}\t(unassigned - parameter position {1})",
                        tParam,
                        tParam.GenericParameterPosition);
                }
                else
                {
                    Console.WriteLine("\t\t{0}", tParam);
                }
            }
        }
        return "";
    }
}

The code above generates the following result.





















Home »
  C# Tutorial »
    System.Reflection »




EventInfo
FieldInfo
MemberInfo
MethodInfo
ParameterInfo
TypeInfo