C# XML /// 注释中,<returns></returns> 标签出现在哪里?

50

我是一名编程学生,我的问题很简单,但网上找不到答案。这里是我的问题:

在C#的XML注释中,<returns>标签显示在哪里?我知道<summary>标签中包含的所有内容都会在您悬停鼠标在方法调用上时出现在智能感知中,但返回标记却没有。

那么<returns>标签在哪里呢?

谢谢。

5个回答

38

当你在视图 >> 对象浏览器中看到这个方法时

例如,你会看到类似于下面的内容:

private int GetColumnIndex(Microsoft.Office.Interop.Excel.Worksheet worksheet, string columnName, int rowIndex, int startColumnIndex)
    Member of MyAddIn.CommandHandlers.CommandHandler

Summary:
Returns the column index with specified name and in specified row

Parameters:
worksheet: Target worksheet
columnName: Column name to find
rowIndex: Row index in which to search the column
startColumnIndex: Start index of the column

Returns:
The index of column if found, else returns 0

7
如果您从注释中生成API文档,它将显示在“返回值”部分中,就像这里所示,位于“备注”部分之前。

7
如果您选择在编译时构建XML文档文件,则所有包含在XML文档注释中的内容都会复制到该文件中。像Sandcastle这样的程序可以从中构建类似于MSDN的HTML文档。
据我所知,它不会显示在Visual Studio自己的IntelliSense中。但这并不是不写东西的借口 :-)。例如,ReSharper的Ctrl+Q就可以显示它。

5

对于那些可能在寻找某些内容的人来说,这可能不是最佳方法,但在我看来,当悬停在方法名称上时,它确实更容易理解方法的作用。

        /// <summary>
        /// Adds a new post given the mapped PostDTO and userId <br></br><br></br>
        /// <b>Returns</b> the newly created object, otherwise null.
        /// </summary>
        /// <param name="postDTO"></param>
        /// <param name="userId"></param>
        PostDTO addPost(PostDTO postDTO, long userId);

这样,你就可以在 VS 中看到类似下图的东西(至少在 VS 2019 中),根据我的经验,当试图理解他人编写的代码时,你至少可以知道预期结果,无论是实际的对象还是 null,或者其他情况。

enter image description here

我希望它对其他人有用。


虽然在视觉上看起来相似,但你应该使用 <returns> 标签来突出显示方法返回的内容 - https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/xmldoc/recommended-tags#returns - Kami

1

其他部分(基本上除了summary之外的任何内容)不会出现在Intellisense中。它们只打算出现在使用类似Sandcastle这样的工具从XML生成的文档中。


9
这实际上并不正确。参数(包括类型参数)会在你在使用代码中输入参数之前出现在智能感知中。这是一个非常有用的功能,可以帮助你知道应该输入哪些参数。 - RosieC
2
注释中抛出的异常也会出现,但只显示它们的类型而不显示相关的注释。 - khargoosh
参数描述同时也作为方法内部变量的描述,在输入时和鼠标悬停时都有效。这可能是一个新功能(?)。 - M Kloster

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