ReSharper a C# 3.0: pierwsze wrażenia
Zainstalowałem niedawno 30-dniową wersję ReSharpera 4.0 i badam jak to narzędzie się sprawuje. Kiedyś używałem ReSharpera na codzień, ale zmieniłem pracę i narzędzie nie poszło za mną. Z powodu wydania wersji 4.0 postanowiłem zobaczyć jak daleko sprawy poszły do przodu.
Pierwsze wrażenie jest takie, że ReSharper bardzo gorąco zachęca do stosowania nowinek z C# 3.0. Na każdym kroku pojawia się zachęta do zamiany zwykłych deklaracji na te z użyciem słowa kluczowego var. Efekt jest taki, że po pierwszych dniach niepewności i wahania zaczynam się przestawiać i (nad) używać var. Dzisiaj natrafiłem na "gotcha" związane z odruchowym stosowaniem słowa kluczowego var: stare, niegeneryczne kolekcje rodem z C# pre-2.0. Zamiast zastanowić się chwilę nad tym po jakiego typu obiektach chcemy iterować, resharperowy live template i słowo kluczowe var wyprowadzają nas w maliny i zostawiają ze standardowym zestawem znanych metod, czyli ToString, Equals, GetHashCode i niczym więcej. Nadal trzeba się pilnować :(.
Drugą refaktoryzacją, z której zacząłem korzystać bardzo często jest zamiana sekwencji: utworzenie obiektu + seria przypisań do właściwości tego obiektu na nową składnię, na przykład:
var customer = new Customer();
customer.FirstName= "Marcin";
customer.LastName= "Hoppe";
zamienia się na:
var customer = new Customer {
FirstName= "Marcin",
LastName= "Hoppe"
};
Ostatnie: bardzo fajna jest refaktoryzacja z bezparametrowych anonimowych metod do wyrażeń lambda postaci
() => ...
Postaram się w niedalekiej przyszłości napisać coś więcej na temat tego, co mi się w nowym ReSharperze podoba (albo i nie).