string (Riferimenti per C#)

Aggiornamento: novembre 2007

Il tipo string rappresenta una sequenza di zero o più caratteri Unicode. string è un alias della classe String in .NET Framework.

Sebbene string sia un tipo di riferimento, gli operatori di uguaglianza (== e !=) vengono definiti per confrontare i valori degli oggetti string, non i riferimenti. Questo rende più intuitiva la verifica dell'uguaglianza delle stringhe. Esempio:

string a = "hello";
string b = "h";
// Append to contents of 'b'
b += "ello";
Console.WriteLine(a == b);
Console.WriteLine((object)a == (object)b);

Viene visualizzato "True" e quindi "False" perché i contenuti delle stringhe sono equivalenti, ma a e b non fanno riferimento alla stessa istanza di stringa.

L'operatore + concatena le stringhe:

string a = "good " + "morning";

Viene creato un oggetto stringa che contiene "good morning".

Le stringhe non sono modificabili, ovvero il contenuto di un oggetto di tipo stringa non può essere modificato dopo che l'oggetto è stato creato, nonostante la sintassi faccia inferire il contrario. Ad esempio, quando si scrive questo codice, il compilatore crea un nuovo oggetto di tipo stringa per includervi la nuova sequenza di caratteri e la variabile b continua a contenere "h".

string b = "h";
b += "ello";

È possibile utilizzare l'operatore [] per accedere in sola lettura ai singoli caratteri di un oggetto string:

string str = "test";
char x = str[2];  // x = 's';

Le stringhe letterali sono di tipo string e possono essere scritte in due formati, tra virgolette oppure tra virgolette e preceduti da @. Le stringhe letterali racchiuse tra virgolette sono precedute e seguite da virgolette doppie ("):

"good morning"  // a string literal

I valori letterali stringa possono contenere qualsiasi valore letterale carattere. Le sequenze di escape sono incluse:

string a = "\\\u0066\n";

Questa stringa contiene una barra rovesciata, la lettera f e una nuova riga.

Nota:

Il codice di escape \udddd, dove dddd è un numero a quattro cifre, rappresenta il carattere Unicode U+dddd. Sono inoltre riconosciuti i codici di escape Unicode a otto cifre: \udddd\udddd.

I valori letterali stringa verbatim iniziano con @ e sono anche racchiusi tra virgolette doppie. Esempio:

@"good morning"  // a string literal

Il vantaggio dell'utilizzo delle stringhe verbatim è che le sequenze di escape non vengono elaborate e questo semplifica la scrittura, ad esempio, di un nome di file completo:

@"c:\Docs\Source\a.txt"  // rather than "c:\\Docs\\Source\\a.txt"

Per includere delle virgolette doppie in una stringa tra virgolette preceduta da @, sarà necessario raddoppiare le virgolette:

@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.

È inoltre possibile utilizzare il simbolo @ per avvalersi di identificatori a cui si fa riferimento (/reference) e che rappresentano parole chiave C#.

Per ulteriori informazioni sulle stringhe in C#, vedere Stringhe (Guida per programmatori C#).

Esempio

class SimpleStringTest 
{
   static void Main()
   {
      string a = "\u0068ello ";
      string b = "world";
      Console.WriteLine( a + b );
      Console.WriteLine( a + b == "Hello World" ); // == performs a case-sensitive comparison
   }
}
/* Output:
    hello world
    False
 */

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere le sezioni riportate di seguito in Specifiche del linguaggio C#:

  • 2.4.2 Identificatori

  • 2.4.4.5 Stringhe letterali

  • 4.2.3 Tipo stringa

  • 7.9.7 Operatori di uguaglianza delle stringhe

Vedere anche

Concetti

Guida per programmatori C#

Guida per programmatori C#

Riferimenti

Parole chiave di C#

Tipi di riferimento (Riferimenti per C#)

Tipi di valore (Riferimenti per C#)

Altre risorse

Riferimenti per C#

Tabella della formattazione dei risultati numerici (Riferimenti per C#)