Reflection C#

using System.Reflection;
using System.Data.SqlClient;
class Utils
{
    internal static T GetAttribute(ICustomAttributeProvider attributeProvider)
    {
        T[] attrs = GetAttributes(attributeProvider);
        return attrs.Length > 0 ? attrs[0] : default(T);
    }
    internal static T[] GetAttributes(ICustomAttributeProvider attributeProvider)
    {
        object[] attributes = attributeProvider.GetCustomAttributes(typeof(T), false);
        T[] ts = new T[attributes.Length];
        for (int i = 0; i < attributes.Length; ++i)
            ts[i] = (T)attributes[i];
        return ts;
    }
    internal static bool HasGetter(PropertyInfo info)
    {
        if (info.GetGetMethod() == null && info.GetGetMethod(true) == null)
            return false;
        else
            return true;
    }
    internal static bool HasSetter(PropertyInfo info)
    {
        if (info.GetSetMethod() == null && info.GetSetMethod(true) == null)
            return false;
        else
            return true;
    }
    internal static bool IsIndexer(PropertyInfo info)
    {
        MethodInfo minfo = info.GetGetMethod() == null ? info.GetGetMethod(true) : info.GetGetMethod();
        if (minfo.GetParameters().Length > 0)
            return true;
        else
            return false;
    }
}