void ConstructCRef(StringBuilder sb) { sb.Append(Namespace); if (DescKind == Kind.Namespace) { return; } sb.Append('.'); sb.Append(TypeName); if (GenericTypeArguments != null) { sb.Append('<'); foreach (var t in GenericTypeArguments) { t.ConstructCRef(sb); } sb.Append('>'); } if (NestedType != null) { sb.Append('+'); NestedType.ConstructCRef(sb); } if (ArrayDimensions != null && ArrayDimensions.Count > 0) { for (int i = 0; i < ArrayDimensions.Count; i++) { sb.Append('['); sb.Append(new string (',', ArrayDimensions[i] - 1)); sb.Append(']'); } } if (DescKind == Kind.Type) { return; } if (MemberArguments != null) { } }
void ConstructCRef(StringBuilder sb) { sb.Append(Namespace); if (DescKind == Kind.Namespace) { return; } sb.Append('.'); sb.Append(TypeName); if (GenericTypeArguments != null && GenericTypeArgumentsIsNumeric) { sb.AppendFormat("`{0}", GenericTypeArgumentsCount); } else if (GenericTypeArguments != null) { sb.Append('<'); int i = 0; foreach (var t in GenericTypeArguments) { if (i > 0) { sb.Append(","); } t.ConstructCRef(sb); i++; } sb.Append('>'); } if (NestedType != null) { sb.Append('+'); NestedType.ConstructCRef(sb); } if (ArrayDimensions != null && ArrayDimensions.Count > 0) { for (int i = 0; i < ArrayDimensions.Count; i++) { sb.Append('['); sb.Append(new string (',', ArrayDimensions[i] - 1)); sb.Append(']'); } } if (DescKind == Kind.Type) { return; } sb.Append("."); sb.Append(MemberName); if (MemberArguments != null && MemberArgumentsCount > 0) { sb.Append("("); int i = 0; foreach (var a in MemberArguments) { if (i > 0) { sb.Append(","); } a.ConstructCRef(sb); i++; } sb.Append(")"); } }
void ConstructCRef(StringBuilder sb, bool skipLeadingDot = false) { if (string.IsNullOrEmpty(Namespace)) { skipLeadingDot = true; } sb.Append(Namespace); if (DescKind == Kind.Namespace) { return; } if (!skipLeadingDot) { sb.Append('.'); } sb.Append(TypeName); AppendGenericArguments(sb, GenericTypeArguments, GenericTypeArgumentsIsNumeric, GenericTypeArgumentsCount); if (NestedType != null) { sb.Append('+'); NestedType.ConstructCRef(sb, skipLeadingDot: true); } if (ArrayDimensions != null && ArrayDimensions.Count > 0) { for (int i = 0; i < ArrayDimensions.Count; i++) { sb.Append('['); sb.Append(new string (',', ArrayDimensions[i] - 1)); sb.Append(']'); } } if (DescKind == Kind.Type) { return; } if (ExplicitImplMember != null) { sb.Append('$'); ExplicitImplMember.DescKind = this.DescKind; ExplicitImplMember.ConstructCRef(sb, skipLeadingDot: false); return; } sb.Append("."); sb.Append(MemberName); AppendGenericArguments(sb, GenericMemberArguments, GenericMemberArgumentsIsNumeric, GenericMemberArgumentsCount); if (MemberArguments != null && MemberArgumentsCount > 0) { sb.Append("("); int i = 0; foreach (var a in MemberArguments) { if (i > 0) { sb.Append(","); } a.ConstructCRef(sb); i++; } sb.Append(")"); } }