2015-08-24 13 views
43

In C# di solito uso String quando utilizzo un metodo e string quando si dichiara una variabile. Ho letto altrove che questo è il metodo preferito per mantenere le cose pulite e aveva senso per me. In Visual Studio 2015, ricevo un nuovo messaggio che non ho ottenuto prima quando utilizzo String: Name can be simplified. Il suggerimento VS è quello di utilizzare string invece.Perché la "stringa" è considerata una versione semplificata di "String"?

Perché ora loè preferito rispetto a String in VS2015 mentre non era nel 2013 ??

Non un duplicato di this question. Quello chiede quale sia la differenza nel complesso, sto chiedendo perché VS ora sta suggerendo l'uno sull'altro; Non so se una differenza tecnica sia cambiata o qualcosa del genere.

+0

uniformità nell'uso è anche un aspetto importante. –

+0

Votare per chiudere un parere in quanto non ci sono motivi tecnici per usare l'uno sull'altro. –

+2

@DStanley: Questo è il punto della mia domanda. Se è basato sull'opinione, allora risponderebbe alla mia domanda. Ho chiesto perché VS lo sta suggerendo mentre non lo ha fatto in passato, il che mi ha portato a credere che ci sia una ragione tecnica per questo. – vaindil

risposta

33

Perché non hai deselezionare "Preferisci intrinseca tipo di parola chiave predefinita quando si dichiara la gente del posto, i parametri ed i membri" trovati sotto Strumenti> Opzioni> Editor di testo> C#> Codice di stile

+4

È in Stile codice nella sezione C#, non in Avanzato. Ma ancora, non penso che sia del tutto corretto - l'opzione che hai proposto cambia _variable declarationations_ (ad esempio, da 'int' a' Int32'). L'altra opzione simile, "Preferisci la parola chiave di tipo predefinito intrinseco nelle espressioni di accesso dei membri", apporta una modifica simile ('int.MaxValue' a' Int32.MaxValue'). In VS2013 ho usato 'stringa' /' String' come descritto nell'OP, non ho mai toccato queste opzioni, nessun messaggio da VS. Ora sta lanciando questo messaggio e non so perché. (A proposito, VS2013 non ha nemmeno questa opzione.) – vaindil

+1

@Vaindil: Sì; questa intera funzionalità è nuova a Roslyn. – SLaks

+0

Quindi questo nuovo metodo è preferito per Roslyn? Presumo quindi se VS lancia un avvertimento a riguardo, voglio solo controllare. – vaindil

4

stringa è un alias in C# per System.String. Quindi tecnicamente, non c'è differenza. È un po 'come int vs. System.Int32.

Per quanto riguarda ciò che si dovrebbe fare, la stringa è l'oggetto preferito per le variabili e String per le classi come scelta praticata.

solito visto così

string example = "hello world"; 

string example = String.Format("Hello World {0}!", example); 
6

Strumenti> Opzioni> Editor di testo> C#> Codice di stile deselezionare "Preferisco intrinseca tipo di parola chiave predefinita nelle espressioni di accesso membri"

esempio dato in VS2015 per questa opzione ribalta

var local = int.MaxValue (barrato)

a

var local = Int32.MaxValue (unticked)

E dopo che probabilmente si vorrà per disabilitarlo/configurare la gravità di ispezione sul ReSharper troppo che è il "Sostituisci incorporato tipo di riferimento con un tipo CLR nome o una parola chiave "regola.

Ora nulla accenna a me per cambiare String.Format()-string.Format()

Problemi correlati