Wpis z mikrobloga

Dlaczego ReSharper sugeruje mi żeby deklarować zmienne w ten sposób:

var myList = new List<String>();


zamiast:

List<String> myList = new List<String>();


Czy rodzaj deklaracji jest zależny od tego gdzie je deklaruję? Jak powinienem deklarować je w klasie, a jak w metodzie? Czy to naprawdę ma jakieś znaczenie? ( ͡° ͜ʖ ͡°)

#csharp

  • 8
@super: Nigdy var (chyba że to JS). Widok takich zmiennych w kodzie drastycznie zaniża jego poziom i czytelność. ReSharper dobry tool ale jak przyjdzie potem przerzucić się na pisanie bez żadnych ułatwień to czasem idzie zapomnieć się i yyy jak to się pisało ( ͡° ͜ʖ ͡°)
Dlaczego ReSharper sugeruje mi żeby deklarować zmienne w ten sposób


@super: Odpowiedź: bo takie masz ustawienia konwencji. Można to zmienić.

A tak jest kilka szkół. Jedni mówią, żeby używać var tylko jeśli po prawej stronie wiadomo z góry jaki będzie typ (new, rzutowanie), inny twierdzą, żeby używać zawsze. Resharper domyślnie postuluje drugą wersję. Wydaję mi się, że powodem jest to, że jeśli zmienisz typ zwracany przez metodę to w wielu przypadkach