string (Riferimenti per C#)
Il tipo string rappresenta una sequenza di zero o più caratteri Unicode. Il tipo string è un alias dell'elemento 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. Ad 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, scrivendo il codice definito, il compilatore creerà in realtà un nuovo oggetto di tipo stringa nel quale archiviare la nuova sequenza di caratteri, quindi il nuovo oggetto verrà assegnato a b. La stringa "h" è quindi idonea per Garbage Collection.
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. Nell'esempio seguente vengono utilizzate le sequenze di escape \\ per la barra rovesciata, \u0066 per la lettera f e \n per l'indicatore di nuova riga.
string a = "\\\u0066\n";
Console.WriteLine(a);
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: \Udddddddd.
I valori letterali stringa verbatim iniziano con @ e sono anche racchiusi tra virgolette doppie. Ad 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 altre informazioni, vedere la Specifiche del linguaggio C#. La specifica del linguaggio costituisce il riferimento ufficiale principale per la sintassi e l'uso di C#.
Vedere anche
Riferimenti
Tipi di riferimento (Riferimenti per C#)
Tipi di valore (Riferimenti per C#)
Concetti
Procedure consigliate per l'utilizzo di stringhe in .NET Framework
Creazione di nuove stringhe in .NET Framework
Altre risorse
Operazioni di base su stringhe in .NET Framework
Tabella di formattazione dei risultati numerici (Riferimenti per C#)