Skip to content

Instantly share code, notes, and snippets.

@bfriesen
Created October 14, 2022 19:33
Show Gist options
  • Save bfriesen/d6144163d2697c1e1fa79c2e13ad2ca6 to your computer and use it in GitHub Desktop.
Save bfriesen/d6144163d2697c1e1fa79c2e13ad2ca6 to your computer and use it in GitHub Desktop.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Each member with an <inheritdoc/> tag does not render the <typeparamref> tag in its documentation tooltip correctly.
// Other documentation tags (<paramref/> and <c></c>) are included to demonstrate that other tags are rendered correctly.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public static class GenericStaticClass<TArgument>
{
/// <summary>
/// Summary:<br/>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c>
/// </summary>
/// <remarks>
/// Remarks:<br/>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c>
/// </remarks>
/// <param name="argument">typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c></param>
/// <returns>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c></returns>
public static string MethodWithRegularDocs(string argument) => argument;
/// <inheritdoc cref="MethodWithRegularDocs"/>
public static string MethodWithInheritDoc(string argument) => argument;
}
public static class NonGenericStaticClass
{
/// <summary>
/// Summary:<br/>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c>
/// </summary>
/// <remarks>
/// Remarks:<br/>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c>
/// </remarks>
/// <typeparam name="TArgument">typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c></typeparam>
/// <param name="argument">typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c></param>
/// <returns>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c></returns>
public static string MethodWithRegularDocs<TArgument>(string argument) => argument;
/// <inheritdoc cref="MethodWithRegularDocs"/>
public static string MethodWithInheritDoc<TArgument>(string argument) => argument;
}
/// <summary>
/// Summary:<br/>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c>
/// </summary>
/// <remarks>
/// Remarks:<br/>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c>
/// </remarks>
/// <typeparam name="TArgument">typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c></typeparam>
public class GenericClass<TArgument>
{
/// <summary>
/// Summary:<br/>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c>
/// </summary>
/// <remarks>
/// Remarks:<br/>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c>
/// </remarks>
/// <param name="argument">typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c></param>
/// <returns>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c></returns>
public virtual string Method(string argument) => argument;
}
/// <inheritdoc/>
public class InheritedGenericClass<TArgument> : GenericClass<TArgument>
{
public override string Method(string argument) => base.Method(argument);
}
public class NonGenericClass
{
/// <summary>
/// Summary:<br/>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c>
/// </summary>
/// <remarks>
/// Remarks:<br/>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c>
/// </remarks>
/// <typeparam name="TArgument">typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c></typeparam>
/// <param name="argument">typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c></param>
/// <returns>typeparamref: <typeparamref name="TArgument"/>.<br/>paramref: <paramref name="argument"/>.<br/><c>in-line code</c></returns>
public virtual string Method<TArgument>(string argument) => argument;
}
/// <inheritdoc/>
public class InheritedNonGenericClass : NonGenericClass
{
public override string Method<TArgument>(string argument) => base.Method<TArgument>(argument);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment