public override FieldInfo[] __GetDeclaredFields()
        {
            int field = module.TypeDef.records[index].FieldList - 1;
            int end   = module.TypeDef.records.Length > index + 1 ? module.TypeDef.records[index + 1].FieldList - 1 : module.Field.records.Length;

            FieldInfo[] fields = new FieldInfo[end - field];
            if (module.FieldPtr.RowCount == 0)
            {
                for (int i = 0; field < end; i++, field++)
                {
                    fields[i] = module.GetFieldAt(this, field);
                }
            }
            else
            {
                for (int i = 0; field < end; i++, field++)
                {
                    fields[i] = module.GetFieldAt(this, module.FieldPtr.records[field] - 1);
                }
            }
            return(fields);
        }