如何在XML注释中指定类型<return>注释

8
在我的C# XML注释的<return>注释中,我希望输出(我正在使用Sandcastle)指定返回的类型,但我无法找到如何实现这一点。 伪代码示例:
///<summary>
///Serves as a hash function for a particular type.
///</summary>
///<returns **Type="System.Int32"**>
///A hash code for the current Object.
///</returns>
public virtual int GetHashCode(){...}

上面的示例是我猜测告诉Sandcastle如何指定在文档的“Syntax”部分记录的返回类型的模拟 - 并非如此。
为了清晰起见,这里是MSDN对GetHastCode()方法的文档截图,显示了我想要的返回类型。
我们是否必须手动指定类型,还是可以指定一个类型(类似于模拟示例),让Sandcastle确定如何显示/格式化输出 - 类似于Sandcastle通过<param>标记自动显示/格式化参数类型。

enter image description here


然而,要使单词“Object”成为相关类型的引用,您需要编写:///当前<see cref="Object"/>的哈希代码。 - Jeppe Stig Nielsen
我也想知道这个问题的答案,因为我有一个使用 JsonResult<T> 的 API,但 T 是匿名类型。每当我尝试指定该类型时,除 dynamic 外的所有方式都会遇到错误。 - Andrew
2个回答

6

您不需要在XML文档中指定它 - 毕竟,这是多余的,因为它已经在方法声明中了。

如果您真的想要它,我认为这是调整Sandcastle样式的问题 - 但是您觉得它特别有用吗?这并不意味着用户不能在方法签名中单击返回类型。 (至少在SHFB的Prototype样式中似乎是这种情况。请参见Noda Time documentation以查看其示例。)

在MSDN中,方法签名没有链接(至少在Chrome中不是这样; 我不知道在IE中是否不同),但是个人而言,我更喜欢它在签名中而不是混乱实际文档。


我明白你的意思,但我认为从MSDN/Sandcastle在参数部分冗余地指定类型的角度来看,我假设也有一种内置的方法来指定返回值的类型。 - Jed

3

这篇文章(2011年7月)有Eric Woodruff(SHFB作者)对于<return>标签中缺少返回类型的解释:

Sandcastle不会呈现返回信息的类型信息,我认为它从来没有这么做过。只要信息在反射信息文件中提供,XSL转换就可以修改以呈现它。我现在没有时间去研究它,但可能在某个时候能够找出是否可能。

我想对我的原始问题给出官方答案:Sandcastle没有自动指定返回类型的方法,但是像Skeet已经暗示的那样,通过修改XSL转换,可能可以实现这一点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接