当编写xml文档时,您可以使用<see cref="something">something</see>,这当然是有效的。但是如何使用泛型类型引用类或方法呢?
public class FancyClass<T>
{
public string FancyMethod<K>(T value) { return "something fancy"; }
}
如果我要在某个地方编写xml文档,我该如何引用这个奇特的类呢?我怎么能引用一个幻想类<字符串>?方法呢?
例如,在一个不同的类中,我想让用户知道我将返回一个FancyClass<int>的实例。我怎么能做一个see cref的东西?
这是我在其他地方给出的答案。它也适用于类和方法。
我尝试了堆栈溢出的一切,以获得在几种情况下工作的结果。这里有一个对我有用的解决办法。(这对其他人来说是主观的。)
产生可点击的链接。
将鼠标悬停在标识符上是可行的。
正确生成.xml文件。
在智能感知中不产生错误。
适用于可空的泛型类型参数。
工作在Resharper和它的内置XML文档窗口(Resharper ->编辑->显示快速文档)
工作在XAM文档预览的Atomineer Pro Documentaion Visual Studio扩展。
使用泛型类型的泛型类型。
示例# 1
/// <summary>
/// This instance field holds a reference to the
/// <see cref="ConcurrentDictionary{Decimal, Boolean}"/> as
/// <see cref="T:ConcurrentDictionary<decimal, bool?>"/> that contains
/// the list of all PDF's that are currently opened and being displayed.
/// </summary>
private ConcurrentDictionary<decimal, bool?> openedPdfs = default!;
Note:
The ConcurrentDictionary{Decimal, Boolean} will correctly produce a
clickable link of ConcurrentDictionary{TKey, TValue} on hovering while
T:ConcurrentDictionary<decimal, bool?> makes sure the reader gets
information on what type TKey and TValue are.
例2(使用“T”)
/// <summary>
/// This instance field holds a reference to the
/// <see cref="ConcurrentDictionary{TKey, TValue}"/> as
/// <see cref="T:ConcurrentDictionary<decimal, bool?>"/> that contains
/// the list of all PDF's that are currently opened and being displayed.
/// </summary>
private ConcurrentDictionary<decimal, bool?> openedPdfs = default!;