Domanda

Sto usando StyleCop per ReSharper su un progetto originariamente scritto per .net v2. Ma allora ho aggiornato questo progetto per 3,5 quadro.

StyleCop raccomanda a cambiare la maggior parte delle mie variabili esplicitamente digitati digitato implicitamente, ad esempio:

string - var

Tipo di forte personalizzato - var

E 'questa la via da seguire quando si lavora con un progetto di 3,5 .net. Sembra insolito dichiarando tutto come var.

Sentitevi liberi di aggiornare il titolo della domanda se la mia terminologia è fuori ...

È stato utile?

Soluzione

Quelli non sono generici, quelli sono variabili implicitamente tipizzate. Questo è davvero in gran parte una questione di gusto. Ci sono luoghi dove si può esagerare con l'uso di var e ci sono luoghi in cui è molto chiaramente necessario (si pensi tipi anonimi) quindi basta trovare il posto in mezzo che si adatta alle proprie preferenze (e della tua squadra).

Altri suggerimenti

stato dibattuto in molti luoghi, e si è scesi a piacere. Confrontate queste due righe di codice:

StringBuilder stringBuilder = new StringBuilder();
var stringBuilder = new StringBuilder();

Quale preferisci?

Date un'occhiata a questo

var (Riferimenti per C #) e

implicito diversi tipi di variabili locali (C # Programming Guide)

  

Una variabile locale implicitamente tipizzato è   fortemente tipizzato come se aveste   dichiarato il tipo da soli, ma la   compilatore determina il tipo.

Anche dare un'occhiata al L'uso della parola chiave var in C #

C # Dibattito: Quando si dovrebbe utilizzare var?

Credo che la sua più di una suggestione e dovrebbe essere considerata, ma non necessariamente implementato completamente.

Mentre personali Credo che il miglior uso di var è quando la dichiarazione / tipo di ritorno è evidente, cioè:

var temp = "Test me now";

vs

var temp = GetTestData();

Inoltre mi piace molto essere in grado di dichiarare tipi generici con meno codice:

    var test = new Dictionary<string,string>();

vs

    Dictionary<string, string> test = new Dictionary<string,string>();

var è molto importante quando si utilizza per esempio tipi anonimi ...

var cees = from c in Customers select new { c.Name, c.Birthdate };

ReSharper suggerirà di cambiare tutto per var. Per le definizioni ovvie come

var c = new Customer();

mi piace usarlo. per qualche chiamata API posso annotare il tipo in modo esplicito:

Customer c = repository.Get(1);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top