Mono.CSharp.DocUtil.GetMethodDocCommentName C# (CSharp) Method

GetMethodDocCommentName() public static method

public static GetMethodDocCommentName ( MemberCore mc, ParametersCompiled parameters, DeclSpace ds ) : string
mc MemberCore
parameters ParametersCompiled
ds DeclSpace
return string
		public static string GetMethodDocCommentName (MemberCore mc, ParametersCompiled parameters, DeclSpace ds)
		{
			IParameterData [] plist = parameters.FixedParameters;
			string paramSpec = String.Empty;
			if (plist != null) {
				StringBuilder psb = new StringBuilder ();
				int i = 0;
				foreach (Parameter p in plist) {
					psb.Append (psb.Length != 0 ? "," : "(");
					psb.Append (GetSignatureForDoc (parameters.Types [i++]));
					if ((p.ModFlags & Parameter.Modifier.ISBYREF) != 0)
						psb.Append ('@');
				}
				paramSpec = psb.ToString ();
			}

			if (paramSpec.Length > 0)
				paramSpec += ")";

			string name = mc.Name;
			if (mc is Constructor)
				name = "#ctor";
			else if (mc is InterfaceMemberBase) {
				var imb = (InterfaceMemberBase) mc;
				name = imb.GetFullName (imb.ShortName);
			}
			name = name.Replace ('.', '#');

			if (mc.MemberName.TypeArguments != null && mc.MemberName.TypeArguments.Count > 0)
				name += "``" + mc.MemberName.CountTypeArguments;

			string suffix = String.Empty;
			Operator op = mc as Operator;
			if (op != null) {
				switch (op.OperatorType) {
				case Operator.OpType.Implicit:
				case Operator.OpType.Explicit:
					suffix = "~" + GetSignatureForDoc (op.ReturnType);
					break;
				}
			}
			return String.Concat (mc.DocCommentHeader, ds.Name, ".", name, paramSpec, suffix);
		}