是什么决定了intellisense中显示的内容?

时间:2014-02-28 13:58:59

标签: c# visual-studio intellisense

我有一个开源项目,用户希望了解属性的默认值。如何在intellisense中显示默认值?是否有属性或标签?

以下是相关帖子: https://comparenetobjects.codeplex.com/discussions/535877

/// <summary>
/// If true, compare fields of a class (see also CompareProperties).
/// The default is true.
/// </summary>
public bool CompareFields { get; set; }

2 个答案:

答案 0 :(得分:2)

确保在IDE中工作的用户看到字段属性的默认值的最佳方法是在<summary>标记中包含默认值。要在方法中包含参数的默认值,您可以使用C#的可选参数功能,也可以在<param>元素中包含有关建议默认值的注释。参数。

虽然其他元素可用(例如<remarks><value>),但对IntelliSense的内置支持仅始终显示<summary><param>的内容用户<summary>元素。

最后,为确保您图书馆的用户也可以访问此信息,请务必执行以下步骤:

  1. 配置构建以生成项目的XML文档。
  2. 如果计划用户直接在他们的项目中引用程序集,请确保将XML文档文件与程序集一起分发。
  3. 我目前正在努力使最近添加到Visual Studio 2013的Productivity Power Tools的 Peek帮助功能与3 rd 方文档源一起使用。如果/当此功能可用时,希望查看除.标记之外的更多信息的用户将能够按 Alt + F1 来调出内联文档浏览器。与此同时,在Visual Studio中打开内置的代码定义窗口可能允许您查看比IntelliSense默认情况下要呈现的更多信息(尽管它不会以漂亮的格式呈现)。


    原始问题的详细答案。

    在Visual Studio 2010及更高版本中,您看到的IntelliSense信息分为三个主要操作:

    1. 代码完成次数:这是您在输入新字词或输入(后获得的下拉列表。它包含可用项目列表,如果您选择其中一项,则通常会显示有关该项目的其他信息。
    2. 快速信息:这是您将鼠标悬停在某个项目上时看到的工具提示,它会显示一个包含该项目信息的弹出窗口。
    3. 签名帮助:这是按 Ctrl + Shift + Space 或之后的弹出窗口键入{{1}}字符以开始调用方法。它包含有关方法调用的当前参数的信息。
    4. 这些功能中的每一个都受Visual Studio中各个语言实现的控制(例如,C#控制自己的信息,Visual Basic控制自己的信息)。在IDE内部,信息​​由ICompletionSessionIQuickInfoSessionISignatureHelpSession(分别)提供给IIntellisensePresenter的与语言无关的实现以供显示。语言和表示之间的这种分离使得非常难以修改为其中一种内置语言显示的IntelliSense信息。

答案 1 :(得分:1)

如果在项目的XML documentation file属性中启用Build或在编译时使用/doc命令行开关,则可以从XML样式的注释中生成XML文件。

然后,Visual Studio可以使用此XML文件显示有关属性或方法及其参数的其他信息。您的用户只需将此XML放入与引用的DLL相同的文件夹中。

对于Visual Studio的Designer,DefaultValueAttribute可以放在所有目标(属性,字段......)上。