public string GetFriendlyName(FriendlyNameTypes type = FriendlyNameTypes.Full) { // Apply index number if NOT default method (method have no arguments) var index = (IncludeIndex(type) && (this.OverloadIndex >= 1)) ? string.Format("@{0}", this.OverloadIndex) : string.Empty; var arguments = (IncludeNames(type) || IncludeTypes(type)) ? string.Format( "({0})", string.Join( ", ", this.Parameters.Select(parameter => (IncludeNames(type) && IncludeTypes(type)) ? string.Format( "{0} {1}", parameter.TargetType.FriendlyName, parameter.ParameterName) : IncludeTypes(type) ? parameter.TargetType.FriendlyName : parameter.ParameterName))) : string.Empty; var name = string.Format( "{0}{1}{2}", FullName(type) ? this.Member.GetFriendlyName() : this.Member.Name, index, arguments); return(Mangled(type) ? Utilities.GetMangledName(name) : name); }
private static bool Mangled(FriendlyNameTypes type) => (type & FriendlyNameTypes.Mangled) == FriendlyNameTypes.Mangled;
private static bool IncludeTypes(FriendlyNameTypes type) => (type & FriendlyNameTypes.ArgumentTypes) == FriendlyNameTypes.ArgumentTypes;
private static bool IncludeIndex(FriendlyNameTypes type) => (type & FriendlyNameTypes.Index) == FriendlyNameTypes.Index;
private static bool FullName(FriendlyNameTypes type) => (type & FriendlyNameTypes.FullName) == FriendlyNameTypes.FullName;