clojure.lang.GenClass.GetAllSignatures C# (CSharp) Метод

GetAllSignatures() статический приватный Метод

static private GetAllSignatures ( Type superClass, List interfaces, ISeq methods ) : List
superClass System.Type
interfaces List
methods ISeq
Результат List
        static List<MethodSignature> GetAllSignatures(Type superClass, List<Type> interfaces, ISeq methods)
        {
            HashSet<MethodSignature> considered = new HashSet<MethodSignature>();
            List<MethodSignature> todo = new List<MethodSignature>();

            GetAllMethods(superClass,considered,todo,"super");
            foreach( Type t in interfaces)
                GetAllMethods(t,considered,todo,"interface");

            for (ISeq s = methods; s != null; s = s.next())
            {
                IPersistentVector v = (IPersistentVector)s.first();
                // v == [name [paramTypes...] returnType]
                string name = ((Symbol)v.nth(0)).Name;
                Type[] paramTypes = CreateTypeArray((ISeq)v.nth(1));
                Type returnType = (Type)v.nth(2);
                bool isStatic = RT.booleanCast(v.nth(3));
                MethodSignature sig = new MethodSignature(name, paramTypes, returnType, isStatic, "other");
                if ( ! considered.Contains(sig) )
                    todo.Add(sig);
                considered.Add(sig);
            }
            return todo;
        }