public static string GetGenericName(IGenericDefinition genericDefinition, string leftBracket, string rightBracket, ILanguage language) { V_0 = false; if (genericDefinition as MethodDefinition != null) { V_0 = ((MethodDefinition)genericDefinition).get_HasOverrides(); } V_1 = GenericHelper.GetNonGenericName(genericDefinition.get_Name()); if (!V_0) { if (genericDefinition as MethodDefinition == null) { stackVariable70 = false; } else { stackVariable70 = ((MethodDefinition)genericDefinition).get_IsConstructor(); } if (!stackVariable70) { V_1 = GenericHelper.ReplaceInvalidCharactersName(language, V_1); } } if (genericDefinition.get_HasGenericParameters()) { V_2 = 0; if (genericDefinition as TypeDefinition != null) { V_3 = (genericDefinition as TypeDefinition).get_DeclaringType(); if (V_3 != null && V_3.get_HasGenericParameters()) { V_2 = V_3.get_GenericParameters().get_Count(); } } if (V_2 < genericDefinition.get_GenericParameters().get_Count()) { V_1 = String.Concat(V_1, leftBracket); while (V_2 < genericDefinition.get_GenericParameters().get_Count()) { V_4 = genericDefinition.get_GenericParameters().get_Item(V_2); if (V_4.get_IsCovariant()) { V_1 = String.Concat(V_1, "out "); } if (V_4.get_IsContravariant()) { V_1 = String.Concat(V_1, "in "); } V_1 = String.Concat(V_1, GenericHelper.ReplaceInvalidCharactersName(language, V_4.get_Name())); if (V_2 != genericDefinition.get_GenericParameters().get_Count() - 1) { V_1 = String.Concat(V_1, ", "); } V_2 = V_2 + 1; } V_1 = String.Concat(V_1, rightBracket); } } return(V_1); }
private List <MethodDefinition> GetSameNameMethods(TypeDefinition declaringTypeDefinition, MethodReference method, ExpressionCollection arguments) { V_0 = new List <MethodDefinition>(); V_1 = method.Resolve(); if (V_1 == null) { return(V_0); } V_2 = declaringTypeDefinition.get_Methods().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (String.op_Inequality(V_3.get_Name(), method.get_Name()) || V_3.get_HasParameters() != method.get_HasParameters() || V_3.get_Parameters().get_Count() != method.get_Parameters().get_Count() || (object)V_3 == (object)V_1 || V_3.get_HasGenericParameters() != V_1.get_HasGenericParameters() || !this.ArgumentsMatchParameters(V_3.get_Parameters(), arguments)) { continue; } V_0.Add(V_3); } } finally { V_2.Dispose(); } return(V_0); }