What's the proper way to comment a constructor in a generic class?
21,790
Solution 1
You need to use curly braces:
/// <summary>
/// Initializes a new instance of the <see cref="Repository{T}"/> class.
/// </summary>
For each typeparam
, just add an additional value in the braces, delimited with a comma.
Solution 2
StyleCop has defined how it should look like.
If the class contains generic parameters, these can be annotated within the cref link using either of the following two formats:
/// <summary>
/// Initializes a new instance of the <see cref="Customer`1"/> class.
/// </summary>
public Customer()
{
}
/// <summary>
/// Initializes a new instance of the <see cref="Customer{T}"/> class.
/// </summary>
public Customer()
{
}
Author by
mservidio
Updated on September 02, 2020Comments
-
mservidio over 3 years
What's the proper way to comment this?
/// <summary> /// Initializes a new instance of the <see cref="Repository"/> class. /// </summary> /// <param name="unitOfWork">The unit of work.</param> public Repository(IUnitOfWork unitOfWork) { this.UnitOfWork = unitOfWork; }
VS complains about it:
Warning 11 XML comment on 'Data.Repository.Repository(Data.IUnitOfWork)' has cref attribute 'Repository' that could not be resolved C:\Projects\xx\yy\DataAccess\Repository.cs 35 58 Data
-
BoltClock almost 13 yearsYou can also use angled brackets as XML entities
<T>
. Of course, curly braces are much more convenient :) -
Oleg Shuruev almost 13 yearsBTW, "Initializes a new instance of the Repository class." (without <see> tag) will be also OK for StyleCop.
-
Alexander over 10 yearsAlso, if you have multiple generic types, you can do something like this:
<see cref="KeyedCollection{TKey,TItem}"/>