protected override StringBuilder AppendParameter(StringBuilder buf, ParameterDefinition parameter) { if (parameter.ParameterType is ByReferenceType && parameter.IsOut) { //no notion of out -> mark with attribute to distinguish in other languages buf.Append("[Runtime::InteropServices::Out] "); } if (parameter.HasCustomAttributes) { var isParams = parameter.CustomAttributes.Any(ca => ca.AttributeType.Name == "ParamArrayAttribute"); if (isParams) { buf.AppendFormat("... "); } } buf.Append(GetTypeNameWithOptions(parameter.ParameterType, !AppendHatOnReturn)).Append(" "); buf.Append(parameter.Name); if (parameter.HasDefault && parameter.IsOptional && parameter.HasConstant) { buf.AppendFormat(" = {0}", MDocUpdater.MakeAttributesValueString(parameter.Constant, parameter.ParameterType)); } return(buf); }
private StringBuilder AppendParameter(StringBuilder buf, ParameterDefinition parameter) { if (parameter.ParameterType is ByReferenceType) { if (parameter.IsOut) { buf.Append("out "); } else { buf.Append("ref "); } } if (parameter.HasCustomAttributes) { var isParams = parameter.CustomAttributes.Any(ca => ca.AttributeType.Name == "ParamArrayAttribute"); if (isParams) { buf.AppendFormat("params "); } } buf.Append(GetTypeName(parameter.ParameterType, new DynamicParserContext(parameter))).Append(" "); buf.Append(parameter.Name); if (parameter.HasDefault && parameter.IsOptional && parameter.HasConstant) { buf.AppendFormat(" = {0}", MDocUpdater.MakeAttributesValueString(parameter.Constant, parameter.ParameterType)); } return(buf); }
private StringBuilder AppendParameter(StringBuilder buf, ParameterDefinition parameter) { TypeReference parameterType = parameter.ParameterType; if (parameterType is ByReferenceType byReferenceType) { if (parameter.IsOut) { buf.Append("out "); } else if (parameter.IsIn && parameter.CustomAttributes.Any(ca => ca.AttributeType.FullName == "System.Runtime.CompilerServices.IsReadOnlyAttribute")) { buf.Append("in "); } else { buf.Append("ref "); } parameterType = byReferenceType.ElementType; } if (parameter.HasCustomAttributes) { var isParams = parameter.CustomAttributes.Any(ca => ca.AttributeType.Name == "ParamArrayAttribute"); if (isParams) { buf.AppendFormat("params "); } } buf.Append(GetTypeName(parameterType, new DynamicParserContext(parameter))).Append(" "); buf.Append(parameter.Name); if (parameter.HasDefault && parameter.IsOptional && parameter.HasConstant) { var ReturnVal = MDocUpdater.MakeAttributesValueString(parameter.Constant, parameter.ParameterType); buf.AppendFormat(" = {0}", ReturnVal == "null" ? "default" : ReturnVal); } return(buf); }