2013-05-06 3 views
12

В настройке с Visual Studio 2012 Update 2 и ReSharper 7.1.1 этот файл Annotations.cs генерируется при создании новых проектов. Я не могу найти статью, описывающую, почему ReSharper делает это, и если это можно отключить. Я думаю о ReSharper как об улучшении IDE - и я не ожидаю, что ReSharper добавит файлы мои проекты за моей спиной.ReSharper создает этот файл: Annotations.cs. Зачем?

+1

Этот файл поддерживает аннотации Resharper (такие атрибуты, как '[NotNull]' или '[Pure]'), которые предоставляют дополнительную информацию о коде для анализа кода. Если вам это не нужно, вы можете удалить его, это не должно вызывать никаких проблем (если вы не используете эти аннотации, конечно). –

+3

Я получаю этот файл всегда, если я реализую INotiyPropertyChanged-Interface. Если я создам его, то у меня есть intellisense в PropertyChanged-Event – Tomtom

ответ

18

Этот файл содержит определения для аннотаций кода ReSharper.

Проверка кода и многие другие функции ReSharper в значительной степени основаны на эвристическом анализе исходного кода, чтобы выявлять проблемы, предлагать возможные улучшения и помогать вам другими способами.

Однако эвристический анализ не может обнаружить все. Например, если метод предназначен для того, чтобы никогда не возвращать значение null, и его клиенты сконструированы соответствующим образом, никакой эвристический анализ не поможет найти возможную проблему, если кто-то изменил метод на возврат null.

В этом и многих других случаях аннотированная структура очень помогает. Используя атрибуты, объявленные в этом контексте можно сделать ReSharper анализировать код так, как вам это нужно:

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

Это является простейшим примером, есть и другие полезные свойства с более сложными случаями использования в аннотированному Framework , Вы можете найти полный список этих атрибутов в Справочнике.

Для получения дополнительной информации см. http://www.jetbrains.com/resharper/webhelp/Code_Analysis__Code_Annotations.html.

Смежные вопросы