当编写xml文档时,您可以使用<see cref="something">something</see>,这当然是有效的。但是如何使用泛型类型引用类或方法呢?

public class FancyClass<T>
{
  public string FancyMethod<K>(T value) { return "something fancy"; }
}

如果我要在某个地方编写xml文档,我该如何引用这个奇特的类呢?我怎么能引用一个幻想类<字符串>?方法呢?

例如,在一个不同的类中,我想让用户知道我将返回一个FancyClass<int>的实例。我怎么能做一个see cref的东西?


当前回答

从Lasse和T.B.C的回答来看:

/// <see cref="T:FancyClass`1{T}"/> for more information.

/// <see cref="M:FancyClass`1{T}.FancyMethod`1{K}(T)"/> for more information.

也会正确地提供工具提示,而他们的版本用花括号呈现。

其他回答

这是我在其他地方给出的答案。它也适用于类和方法。

我尝试了堆栈溢出的一切,以获得在几种情况下工作的结果。这里有一个对我有用的解决办法。(这对其他人来说是主观的。)

产生可点击的链接。 将鼠标悬停在标识符上是可行的。 正确生成.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&lt;decimal, bool?&gt;"/> 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&lt;decimal, bool?&gt; 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&lt;decimal, bool?&gt;"/> that contains
  ///  the list of all PDF's that are currently opened and being displayed.
  /// </summary>
  private ConcurrentDictionary<decimal, bool?> openedPdfs = default!;
/// <see cref="FancyClass&lt;T>.FancyMethod&lt;K>(T)"/> for more information.

从Lasse和T.B.C的回答来看:

/// <see cref="T:FancyClass`1{T}"/> for more information.

/// <see cref="M:FancyClass`1{T}.FancyMethod`1{K}(T)"/> for more information.

也会正确地提供工具提示,而他们的版本用花括号呈现。

引用方法:

/// <see cref="FancyClass{T}.FancyMethod{K}(T)"/> for more information.
/// <summary>Uses a <see cref="FancyClass{T}" /> instance.</summary>

顺便说一句,它出现在。net Framework 2.0和3.0的MSDN文档中,但在3.5版本中消失了