在Visual Studio 2012 Update 2和ReSharper 7.1.1的设置中,这个文件Annotations.cs
是在创建新项目时生成的。我找不到任何文章描述为什么ReSharper会这样做,如果有可能禁用它。我认为ReSharper是IDE的一个增强——我不希望ReSharper在我背后给我的项目添加文件。
这个文件包含ReSharper Code annotation的定义。
代码检查和许多其他ReSharper功能很大程度上依赖于对源代码的启发式分析来检测问题,提出可能的改进建议,并以其他方式帮助您。
然而,启发式分析不能检测到一切。例如,如果一个方法被设计为永远不会返回null,而它的客户端也相应地被设计,那么如果有人将方法更改为返回null,则没有启发式分析可以帮助发现可能的问题。
在这种情况和许多其他情况下,带注释的框架是一个很大的帮助。通过使用在这个框架中声明的属性,你可以让ReSharper按照你需要的方式分析代码:
[NotNull]
public object Foo()
{
return null; // Warning: Possible 'null' assignment
}
这是最简单的例子,在注释框架中还有其他更复杂用例的有用属性。您可以在参考中找到这些属性的完整列表。