49

我目前是一名编程学生,显然我的问题很简单,但我一直无法在网上找到答案。所以这里是:

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

那么<returns>标签是从哪里来的呢?

谢谢。

4

5 回答 5

37

当您在 View >> Object Browser 中看到方法时

例如,您将看到如下内容:

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
于 2009-12-04T07:28:46.897 回答
7

如果您从评论中生成 API 文档,它将显示在返回值部分中,如此处所示,就在备注部分之前。

于 2009-12-04T07:29:15.410 回答
7

当您选择在编译时构建 XML 文档文件时,XML 文档注释中包含的所有内容都会被复制到该文件中。然后像Sandcastle这样的程序可以从中构建类似于 MSDN 的 HTML 文档。

据我所知,它没有显示在 Visual Studio 自己的 IntelliSense 中。但这不是不在那里写东西的借口:-)。例如,ReSharper 的 Ctrl+Q确实显示了它。

于 2009-12-04T07:29:22.947 回答
2

对于那些可能试图找到东西的人。这可能不是最好的方法,但恕我直言,它确实使将鼠标悬停在方法名称上时方法的作用更容易理解。

        /// <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 中)中看到一些东西,就像在下一张图片中一样,根据我的经验,当您尝试理解其他人编写的代码时,至少您可以知道会发生什么,无论是实际的objector null,还是其他设想。

在此处输入图像描述

我希望它对其他人有用。

于 2020-04-14T02:13:43.560 回答
1

其他部分(基本上是任何异常summary)都不会出现在智能感知中。它们仅打算出现在使用Sandcastle之类的工具从 XML 生成的文档中。

于 2009-12-04T07:29:44.243 回答