16

在使用 Visual Studio 2012 Update 2 和 ReSharper 7.1.1 的设置中,此文件Annotations.cs是在创建新项目时生成的。我找不到任何描述 ReSharper 为什么这样做以及是否可以禁用它的文章。我认为 ReSharper 是对 IDE 的增强 - 我不希望 ReSharper 在我的项目背后添加文件。

4

1 回答 1

23

此文件包含 ReSharper 代码注释的定义。

代码检查和许多其他 ReSharper 功能在很大程度上依赖于对源代码的启发式分析来检测问题、提出可能的改进建议并以其他方式帮助您。

但是,启发式分析无法检测到所有内容。例如,如果一个方法被设计为永远不会返回 null 并且它的客户端是相应地设计的,如果有人将方法更改为返回 null,则没有启发式分析可以帮助找到可能的问题。

在这种情况和许多其他情况下,带注释的框架有很大的帮助。通过使用在此框架中声明的属性,您可以让 ReSharper 以您需要的方式分析代码:

[NotNull]
public object Foo()
{
    return null; // Warning: Possible 'null' assignment
}
    

这是最简单的示例,注释框架中还有其他有用的属性以及更复杂的用例。您可以在参考中找到这些属性的完整列表。

有关详细信息,请参阅http://www.jetbrains.com/resharper/webhelp/Code_Analysis__Code_Annotations.html

于 2013-05-06T14:16:09.650 回答