Beispiel #1
0
        public override string ToString()
        {
            var owner            = (!String.IsNullOrWhiteSpace(OwnerTypeAlias) ? $"[{OwnerTypeAlias}]" : String.Empty) + OwnerType?.FoundMatchingType;
            var accessModifier   = AccessModifier != MethodAccessModifier.Unknown ? $"{AccessModifier.GetName()} " : String.Empty;
            var returnType       = ReturnType?.FoundMatchingType?.ToString() ?? ReturnType?.Name;
            var methodName       = (!String.IsNullOrWhiteSpace(MethodNameAlias) ? $"[{MethodNameAlias}]" : String.Empty) + MethodName;
            var genericArguments = GenericArguments.Any() ? $"<{string.Join(", ", GenericArguments.Select(a => a.FoundMatchingType?.ToString() ?? a.Name))}>" : null;


            var parameters = ParameterTypes.Select(p => {
                var str = $"{p.Name}";
                if (!String.IsNullOrWhiteSpace(p.GenericName) && p.GenericName != p.Name)
                {
                    str = $"[{p.GenericName}]{str}";
                }
                return(p.IsOptional ? $"{str}?" : str);
            }).ToArray();

            var parametersStr = parameters.Any() ? $"({string.Join(", ", parameters)})" : null;

            return(Regex.Replace($"{owner}:{MethodType.GetName()} {accessModifier} {returnType} {methodName}{genericArguments}{parametersStr}".Trim(), @"\s+", " "));
        }