示例#1
0
 public void Translate(MethodOrDelegate methodOrDelegate)
 {
     if (string.IsNullOrEmpty(methodOrDelegate.orgName))
     {
         methodOrDelegate.orgName           = methodOrDelegate.Name;
         methodOrDelegate.Name              = ConvertToCSValidName(methodOrDelegate.Name, out bool nameAttribute, MethodEmptyName);
         methodOrDelegate.UsesNameAttribute = nameAttribute;
     }
     if (methodOrDelegate.Arguments?.Parameters?.Count > 0)
     {
         for (int n = 0; n < methodOrDelegate.Arguments.Parameters.Count; n++)
         {
             methodOrDelegate.Arguments.Parameters[n].Name = ConvertToCSValidName(methodOrDelegate.Arguments.Parameters[n].Name, out bool _temp);
         }
     }
 }
示例#2
0
        public void Translate(MethodOrDelegate methodOrDelegate, TypeDeclaration @class)
        {
            if (methodOrDelegate?.Name == @class?.name)
            {
                methodOrDelegate.orgName           = methodOrDelegate.Name;
                methodOrDelegate.Name              = "_" + methodOrDelegate.Name;
                methodOrDelegate.UsesNameAttribute = true;
            }
            List <GenericDeclaration> gens = new List <GenericDeclaration>
            {
                @class?.GenericDeclaration,
                methodOrDelegate?.GenericDeclaration
            };

            Translate(methodOrDelegate, gens, @class);
        }
示例#3
0
        public void Translate(MethodOrDelegate methodOrDelegate, List <GenericDeclaration> genericDeclarations, TypeDeclaration @class)
        {
            void CCleanse(TypescriptParser.Type type, bool returnType)
            {
                foreach (var gen in genericDeclarations)
                {
                    Cleanse(type, gen, @class, returnType);
                }
            }

            CCleanse(methodOrDelegate.ReturnType, true);
            if (methodOrDelegate.Arguments?.Parameters.Count > 0)
            {
                foreach (var parameter in methodOrDelegate.Arguments.Parameters)
                {
                    CCleanse(parameter.Type, false);
                }
            }
            Translate(methodOrDelegate);
        }