コード例 #1
0
 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);
 }
コード例 #2
0
 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);
 }