2013-05-06 47 views
12

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

+1

该文件支持Resharper注释(类似'[NotNull]'或'[Pure]'的属性),它提供了有助于代码分析的代码的其他信息。如果你不需要它,你可以删除它,它不应该导致任何问题(只要你当然不使用这些注释)。 – 2013-05-06 14:11:21

+3

如果我实现INotiyPropertyChanged接口,我总​​是得到这个文件。如果我让它创建,那么我在PropertyChanged-Event中拥有智能感知 – Tomtom 2013-05-06 14:13:18

回答

18

此文件包含ReSharper Code Annotations的定义。

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

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

在这个和许多其他情况下,Annotated Framework有很大的帮助。通过使用这个框架声明的属性可以让ReSharper的分析代码,你需要的方式:

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

这是最简单的例子,也有在注释框架更复杂的使用案例等有用的属性。您可以在参考资料中找到这些属性的完整列表。

查看http://www.jetbrains.com/resharper/webhelp/Code_Analysis__Code_Annotations.html了解更多信息。

相关问题