ReSharper создает этот файл: Annotations.cs. Зачем?

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

Ответ 1

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

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

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

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

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

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

Подробнее см. http://www.jetbrains.com/resharper/webhelp/Code_Analysis__Code_Annotations.html.