2013-05-06 12 views
12

W konfiguracji z Visual Studio 2012 Update 2 i ReSharper 7.1.1 ten plik Annotations.cs jest generowany podczas tworzenia nowych projektów. Nie mogę znaleźć żadnego artykułu opisującego, dlaczego ReSharper to robi i czy można to wyłączyć. Myślę, że ReSharper jest ulepszeniem IDE - i nie oczekuję, że ReSharper doda pliki za moimi plecami.ReSharper generuje ten plik: Annotations.cs. Czemu?

+1

Ten plik obsługuje adnotacje Resharper (atrybuty takie jak "[NotNull]" lub "[Pure]'), które dostarczają dodatkowych informacji o kodzie, aby pomóc w analizie kodu. Jeśli go nie potrzebujesz, możesz go usunąć, nie powinno to stanowić problemu (o ile oczywiście nie używasz tych adnotacji). –

+3

Otrzymuję ten plik zawsze, jeśli zaimplementuję interfejs INotiyPropertyChanged. Jeśli pozwolę na tworzenie, to mam intellisense w EventChanged-Event – Tomtom

Odpowiedz

18

Plik ten zawiera definicje adnotacji kodu ReSharper.

Inspekcje kodu i wiele innych funkcji programu ReSharper w dużym stopniu polega na heurystycznej analizie kodu źródłowego w celu wykrycia problemów, sugerowania możliwych ulepszeń i pomocy w inny sposób.

Jednak analiza heurystyczna nie wykrywa wszystkiego. Na przykład, jeśli metoda została zaprojektowana tak, aby nigdy nie zwracać wartości null, a jej klienci są odpowiednio zaprojektowani, żadna analiza heurystyczna nie pomoże znaleźć możliwego problemu, jeśli ktoś zmienił metodę zwracania wartości null.

W tym i wielu innych przypadkach Annotated Framework jest bardzo pomocne. Za pomocą atrybutów zadeklarowanych w tym kontekście można dokonać ReSharper analizować kod drogę trzeba go:

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

To jest najprostszy przykład, istnieją inne przydatne atrybuty z bardziej skomplikowanych przypadków użycia w Opatrzone komentarzem Framework . Pełną listę tych atrybutów można znaleźć w Referencji.

Aby uzyskać więcej informacji, zobacz http://www.jetbrains.com/resharper/webhelp/Code_Analysis__Code_Annotations.html.

Powiązane problemy