public bool TryResolve(ProgramElement[] headerElements, out MethodElement outMethodElement)
        {
            AccessLevel accessLevel;
            Guid classId;

            outMethodElement = null;
            if(ResolveClassId(ClassName, headerElements, out classId) == false) return false;
            if(ResolveAccessType(Name, headerElements, out accessLevel) == false) return false;

            IsResolved = true;
            outMethodElement = new MethodElement(Name, DefinitionLineNumber, FullFilePath, Snippet, accessLevel, Arguments, ReturnType, Body,
                                                    classId, ClassName, String.Empty, IsConstructor);
            return true;
        }
        public bool TryResolve(ProgramElement[] headerElements, out MethodElement outMethodElement)
        {
            AccessLevel accessLevel;
            Guid        classId;

            outMethodElement = null;
            if (ResolveClassId(ClassName, headerElements, out classId) == false)
            {
                return(false);
            }
            if (ResolveAccessType(Name, headerElements, out accessLevel) == false)
            {
                return(false);
            }

            IsResolved       = true;
            outMethodElement = new MethodElement(Name, DefinitionLineNumber, FullFilePath, Snippet, accessLevel, Arguments, ReturnType, Body,
                                                 classId, ClassName, String.Empty, IsConstructor);
            return(true);
        }