Differenza tra "String" e "string" in .NET e quale è il migliore?

14

In .NET Framework, almeno nel linguaggio C #, abbiamo due "versioni" del tipo di stringa:

  • "stringa"
  • "Stringa"

Sembra che siano intercambiabili, ma sono veramente? Se non sono intercambiabili, è generalmente meglio usare uno invece dell'altro, e in quali circostanze?

    
posta Cyberherbalist 11.04.2012 - 23:16
fonte

6 risposte

29

Bene secondo MSDN

string is an alias for String in the .NET Framework.

Dove "String" è in effetti System.String .

Direi che sono intercambiabili e non c'è differenza quando e dove si dovrebbe usare l'una o l'altra.

Sarebbe meglio essere coerenti con quale hai usato comunque.

    
risposta data 11.04.2012 - 23:19
fonte
20

Come sottolineato, sono la stessa cosa e string è solo un alias di String .

Per quello che vale, io uso string per dichiarare tipi - variabili, proprietà, valori di ritorno e parametri. Ciò è coerente con l'uso di altri tipi di sistema: int , bool , var ecc (sebbene anche Int32 e Boolean siano corretti).

Uso String quando utilizzo i metodi statici sulla classe String, come String.Split() o String.IsNullOrEmpty() . Ritengo che ciò abbia più senso perché i metodi appartengono a una classe ed è coerente con il modo in cui utilizzo altri metodi statici.

    
risposta data 12.04.2012 - 07:04
fonte
4

Suggerirei di utilizzare il string in minuscolo. Il maiuscolo String utilizzerà la prima classe denominata String che trova negli spazi dei nomi importati ... che generalmente è System.String . È possibile invece utilizzare la tua classe String.

    
risposta data 11.04.2012 - 23:52
fonte
4

string è una parola chiave C # che è semplicemente un alias per System.String

.. ma siccome è una parola chiave, il tuo editor di colorazione della sintassi / IDE lo mostrerà con il colore della parola chiave, come int, double, if, else, ecc. Stilisticamente, potresti preferire usare la parola chiave piuttosto che System.String type (o solo String dopo aver eseguito using System; ).

Questo è un punto di nicchia, anche se bool , char , int , double e string sono tutti alias di parole chiave per i tipi di sistema, string è un odd-one-out come è un tipo di riferimento e gli altri sono tipi di valore.

    
risposta data 12.04.2012 - 10:38
fonte
2

string è solo un alias per String , in definitiva sono uguali.

Puoi utilizzare quello che preferisci, anche se generalmente uso string quando sto pensando di usarlo come un tipo di dati primitivo (simile a int , float o bool ) e String quando sto pensando di usarlo come oggetto / classe. Ad esempio:

string foo = "   ";
if (String.isNullOrWhitespace(foo)) 
{
    // ...
}

Nel caso precedente, sto pensando di usare foo semplicemente per memorizzare del testo (efficacemente come una primitiva), quindi uso string ; tuttavia, quando chiamo String.isNullOrWhitespace(string) uso String . Lo faccio, perché generalmente la prima lettera dei nomi di classe è in maiuscolo ( String ) mentre la prima lettera di primitivi (come int ) non lo è.

    
risposta data 12.04.2012 - 00:47
fonte
-2

La stringa viene utilizzata con lo spazio dei nomi System.String, string viene utilizzata la specifica del compilatore C #, inoltre System.String è il valore del tipo di riferimento. Si preferisce trattare con oggetti System, stringa solo per scopi letterali. Sistema e sistema funzionanti entrambi uguali.

string TC = new System.String('/', 5);

La stringa viene utilizzata per il confronto, uguali e altri scopi.

    
risposta data 01.05.2014 - 13:14
fonte

Leggi altre domande sui tag