private static bool MemberIsField(MemberInfo[] mi)
 {
     int upperBound = mi.GetUpperBound(0);
     for (int i = 0; i <= upperBound; i++)
     {
         info = mi[i];
         if ((info != null) && (info.MemberType == MemberTypes.Field))
         {
             int num4 = mi.GetUpperBound(0);
             for (int j = 0; j <= num4; j++)
             {
                 if (((i != j) && (mi[j] != null)) && info.DeclaringType.IsSubclassOf(mi[j].DeclaringType))
                 {
                     mi[j] = null;
                 }
             }
         }
     }
     foreach (MemberInfo info in mi)
     {
         if ((info != null) && (info.MemberType != MemberTypes.Field))
         {
             return false;
         }
     }
     return true;
 }
 internal static MemberInfo[] GetNonGenericMembers(MemberInfo[] Members)
 {
     if ((Members != null) && (Members.Length > 0))
     {
         int num = 0;
         int upperBound = Members.GetUpperBound(0);
         for (int i = 0; i <= upperBound; i++)
         {
             if (LegacyIsGeneric(Members[i]))
             {
                 Members[i] = null;
             }
             else
             {
                 num++;
             }
         }
         if (num == (Members.GetUpperBound(0) + 1))
         {
             return Members;
         }
         if (num > 0)
         {
             MemberInfo[] infoArray2 = new MemberInfo[(num - 1) + 1];
             int index = 0;
             int num6 = Members.GetUpperBound(0);
             for (int j = 0; j <= num6; j++)
             {
                 if (Members[j] != null)
                 {
                     infoArray2[index] = Members[j];
                     index++;
                 }
             }
             return infoArray2;
         }
     }
     return null;
 }