// Token: 0x06000D98 RID: 3480 RVA: 0x00029940 File Offset: 0x00027B40 public static MethodBase ExactBinding(MethodBase[] match, Type[] types, ParameterModifier[] modifiers) { if (match == null) { throw new ArgumentNullException("match"); } MethodBase[] array = new MethodBase[match.Length]; int num = 0; for (int i = 0; i < match.Length; i++) { ParameterInfo[] parametersNoCopy = match[i].GetParametersNoCopy(); if (parametersNoCopy.Length != 0) { int j; for (j = 0; j < types.Length; j++) { Type parameterType = parametersNoCopy[j].ParameterType; if (!parameterType.Equals(types[j])) { break; } } if (j >= types.Length) { array[num] = match[i]; num++; } } } if (num == 0) { return(null); } if (num == 1) { return(array[0]); } return(DefaultBinder.FindMostDerivedNewSlotMeth(array, num)); }
public static MethodBase ExactBinding(MethodBase[] match, Type[] types, ParameterModifier[] modifiers) { if (match == null) { throw new ArgumentNullException("match"); } MethodBase[] match1 = new MethodBase[match.Length]; int cMatches = 0; for (int index1 = 0; index1 < match.Length; ++index1) { ParameterInfo[] parametersNoCopy = match[index1].GetParametersNoCopy(); if (parametersNoCopy.Length != 0) { int index2 = 0; while (index2 < types.Length && parametersNoCopy[index2].ParameterType.Equals(types[index2])) { ++index2; } if (index2 >= types.Length) { match1[cMatches] = match[index1]; ++cMatches; } } } if (cMatches == 0) { return((MethodBase)null); } if (cMatches == 1) { return(match1[0]); } return(DefaultBinder.FindMostDerivedNewSlotMeth(match1, cMatches)); }