JetBrains Rider 2025.2 Help

源代码中的注解

JetBrains Rider的代码注解中获益的最简单方法是将注解属性添加到您的源代码符号中,并让 JetBrains Rider 以更高的准确性和洞察力分析您的解决方案。

默认情况下,所有注解属性类都标记有 [Conditional("JETBRAINS_ANNOTATIONS")] 属性,因此编译器会忽略您代码中的属性使用,这意味着不会生成对 'JetBrains.Annotations.dll' 程序集的二进制引用。 但是,您可以在项目中定义 'JETBRAINS_ANNOTATIONS' 条件编译符号,以在元数据中保留这些属性。

在您的项目中启用代码注解支持

要在您的项目中使用注解属性,您需要在项目中引用它们:

  • 推荐的方法是安装带有 JetBrains.Annotations 程序集的 NuGet 包

    实际上,您甚至不需要访问 NuGet 网站来获取该包。 只需添加 using JetBrains.Annotations; 指令,并使用相应的 Alt+Enter 操作即可自动获取该包。

    JetBrains Rider:一个自动从 NuGet 获取 JetBrains.Annotations 包的快速修复
  • 您可以 添加项目引用 JetBrains.Annotations.dll ,您可以在 JetBrains Rider安装目录下的 lib\ReSharperHost 中找到它。

  • 您还可以在项目中的任何位置 嵌入属性声明 ,使用默认的 JetBrains.Annotations 命名空间或其他命名空间。

如果 JetBrains.Annotations 被引用或属性声明嵌入到解决方案中的任何项目中,您可以键入所需的注解属性并按 Alt+Enter 以调用 快速修复 ,该修复将在当前项目中引用此模块并添加缺失的 示意图 指令:

为 JetBrains.Annotations 模块添加引用的快速修复

在您的源代码中嵌入代码注解的声明

您可以在 编辑器 | 检查设置 | 代码注解 页面的 JetBrains Rider 设置 Ctrl+Alt+S 上获取代码注解声明的副本。 可选地,在复制时,您可以选择将声明设为内部的和/或向声明添加 [Conditional("JETBRAINS_ANNOTATIONS")] 属性。

注解属性的默认实现声明在 JetBrains.Annotations 命名空间中,但该命名空间并不是注解正常工作的必要条件。 您可以将声明放置在解决方案中的任何位置——JetBrains Rider 会自动检测它们。 但是,如果声明位于不同的命名空间中,您需要明确指定带有注解属性的命名空间,如下所述。

在某些情况下,您的解决方案可能包含多个注解属性的实现,例如,您有与 JetBrains Rider 注解类同名的类(CanBeNullAttributeNotNullAttribute 等),或者您正在使用包含 JetBrains Rider 注解类的第三方程序集。 在这种情况下,您可以选择 JetBrains Rider 应该查找注解属性类的正确集合的命名空间。

更改代码注解属性的来源

  1. Ctrl+Alt+S 或从菜单中选择 文件 | 设置 (Windows 和 Linux)或 JetBrains Rider | 首选项 (macOS),然后在左侧选择 编辑器 | 检查设置 | 代码注解

  2. JetBrains.Annotations 带有注解类的命名空间外(JetBrains Rider 只会查找 CanBeNullAttributeNotNullAttribute 声明),所有命名空间(包括源代码和引用的程序集)都显示在 带有代码注解属性的命名空间 列表中。 检查包含所需实现的条目。

  3. 如果列表中有多个命名空间,请选择一个应由 JetBrains Rider 代码分析引擎在 默认注解命名空间 列表中使用的命名空间。

  4. 在 设置 对话框中点击 保存 以应用修改,并让 JetBrains Rider 选择保存位置,或者通过从 保存 选择器中选择特定设置层来保存修改。 如需了解更多信息,请参见 基于层的设置

使用上下文操作添加注解属性

一旦 JetBrains Rider 知道了注解类的位置,您就可以使用 上下文操作来添加最常用的注解属性:

  • [NotNull]

  • [CanBeNull]

  • [UsedImplicitly]

要添加这些注解,请在您想要注解的符号上按 Alt+Enter ,JetBrains Rider 将根据上下文建议一个属性:

JetBrains Rider:“可为空”上下文操作
最后修改日期: 2025年 9月 26日