C# TypeInfo GenericParameterAttributes

Description

TypeInfo GenericParameterAttributes Gets a combination of GenericParameterAttributes flags that describe the covariance and special constraints of the current generic type parameter.

Syntax

TypeInfo.GenericParameterAttributes has the following syntax.


public virtual GenericParameterAttributes GenericParameterAttributes { get; }

Example


using System;/*  ww w.j a v a2  s  .  c  om*/
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 (variance == GenericParameterAttributes.None)
            retval = "No variance flag;";
        else
        {
            if ((variance & GenericParameterAttributes.Covariant) != 0)
                retval = "Covariant;";
            else
                retval = "Contravariant;";
        }


        return retval;
    }
}

The code above generates the following result.





















Home »
  C# Tutorial »
    System.Reflection »




EventInfo
FieldInfo
MemberInfo
MethodInfo
ParameterInfo
TypeInfo