public string GetString(ParameterSignature signature, ParameterEmitOptions option) { var temp = new StringWriter(); Write(temp, signature, option); return(temp.ToString()); }
private IEnumerable <string> GetParameterTokens(ParameterSignature parameter, ParameterEmitOptions options) { if (parameter.IsOutParameter) { if (options.HasFlag(ParameterEmitOptions.Keywords)) { yield return("out"); } } else if (parameter.IsRefParameter) { if (options.HasFlag(ParameterEmitOptions.Keywords)) { yield return("ref"); } } if (!options.HasFlag(ParameterEmitOptions.Invocation)) { if (parameter.IsParams) { yield return("params"); } yield return(_typeEmitter.GetString(parameter.ParameterType)); } if (options.HasFlag(ParameterEmitOptions.Name)) { yield return(_keywords.Contains(parameter.Name) ? $"@{parameter.Name}" : parameter.Name); } if (parameter.IsOptional) { if (!options.HasFlag(ParameterEmitOptions.Invocation) && options.HasFlag(ParameterEmitOptions.Optional)) { yield return("="); yield return(GetDefaultValue(parameter, _typeEmitter)); } } }
public void Write(TextWriter writer, ParameterSignature parameter, ParameterEmitOptions options) { writer.Write(string.Join(" ", GetParameterTokens(parameter, options))); }