Reflection C#

using System;
    using System.Reflection;
    using System.ComponentModel;
    public class AClass {
        public void ParamArrayAndDesc(
            [Description("This argument is a ParamArray")]
            params int[] args)
        {}
    }
    class DemoClass {
        static void Main(string[] args) {
            Type clsType = typeof(AClass);
            MethodInfo mInfo = clsType.GetMethod("ParamArrayAndDesc");
            if (mInfo != null) {
                ParameterInfo[] pInfo = mInfo.GetParameters();
                if (pInfo != null) {
                    foreach(Attribute attr in Attribute.GetCustomAttributes(pInfo[0])) {
                        if (attr.GetType() == typeof(ParamArrayAttribute))
                            Console.WriteLine("Parameter {0} for method {1} has the ParamArray attribute.",pInfo[0].Name, mInfo.Name);
                        else if (attr.GetType() == typeof(DescriptionAttribute)) {
                            Console.WriteLine("Parameter {0} for method {1} has a description attribute.",pInfo[0].Name, mInfo.Name);
                            Console.WriteLine("The description is: \"{0}\"",((DescriptionAttribute)attr).Description);
                        }
                    }
                }
            }
        }
    }