public override MethodBase[] __GetDeclaredMethods() { int method = module.TypeDef.records[index].MethodList - 1; int end = module.TypeDef.records.Length > index + 1 ? module.TypeDef.records[index + 1].MethodList - 1 : module.MethodDef.records.Length; MethodBase[] methods = new MethodBase[end - method]; if (module.MethodPtr.RowCount == 0) { for (int i = 0; method < end; method++, i++) { methods[i] = module.GetMethodAt(this, method); } } else { for (int i = 0; method < end; method++, i++) { methods[i] = module.GetMethodAt(this, module.MethodPtr.records[method] - 1); } } return(methods); }