This article has been localized into Italian by the community.
Il tipo Char
Il tipo di dati System.Char viene utilizzato per contenere un singolo carattere unicode. C # ha un alias per questo, chiamato char , che puoi usare quando dichiari le tue variabili char:
char ch;
E, naturalmente, puoi assegnargli immediatamente un valore, se lo desideri. In C #, un carattere è circondato da una serie di virgolette singole:
char ch = 'H';
Poiché una stringa (di cui parleremo nel prossimo capitolo) è fondamentalmente solo un intervallo di caratteri, .NET utilizza effettivamente un elenco di caratteri per rappresentare una stringa. Ciò significa anche che è possibile estrarre un singolo carattere da una stringa o iterare su una stringa e ottenere ogni carattere come tipo di dati char:
string helloWorld = "Hello, world!";
foreach(char c in helloWorld)
{
Console.WriteLine(c);
}
Sotto il cofano, un char è un valore numerico, in cui ogni carattere ha un numero specifico nell' "alfabeto" Unicode. Al momento della scrittura, ci sono più di 130.000 diversi caratteri Unicode , che vanno dall'alfabeto latino / occidentale agli script storici. Quindi, in C #, puoi facilmente passare da un tipo di dati char alla sua rappresentazione numerica, come illustrato da questa versione leggermente estesa dell'esempio precedente:
string helloWorld = "Hello, world!";
foreach(char c in helloWorld)
{
Console.WriteLine(c + ": " + (int)c);
}
Emetterà semplicemente il carattere, seguito dalla rappresentazione numerica, semplicemente lanciando il carattere su un numero intero. Questo significa anche che puoi fare altrettanto facilmente il contrario: da un numero a un personaggio. Ma perché dovresti farlo? Bene, ci sono molti caratteri che non sono direttamente disponibili sulla maggior parte delle tastiere, ad es. il carattere di copyright (©). Puoi invece utilizzare una tabella di ricerca Unicode , trovare la versione numerica del carattere che ti serve e poi trasformarla in un char :
char ch = (char)169;
Console.WriteLine(ch);
Metodi ausiliari di Char
La classe Char ha alcuni metodi di supporto davvero interessanti, che possono aiutarti a determinare il tipo di carattere con cui hai a che fare attualmente. Questo è molto utile in molte situazioni, ad es. durante la convalida dell'input. Ecco un esempio:
Console.WriteLine("Enter a single number:");
char ch = Console.ReadKey(true).KeyChar;
if (Char.IsDigit(ch))
Console.WriteLine("Thank you!");
else
Console.WriteLine("Wrong - please try again!");
Ho semplicemente letto il primo tasto premuto dall'utente e quindi utilizzo il metodo Char.IsDigit () per vedere se è un numero o meno. E ci sono molti metodi come questo, per verificare il tipo di carattere. Possiamo usarlo per eseguire una validazione di stringhe molto semplice:
Console.WriteLine("Write your name:");
string name = Console.ReadLine();
bool isValid = true;
for(int i = 0; i < name.Length; i++)
{
char ch = name[i];
if((i == 0) && ((!Char.IsLetter(ch)) || (!Char.IsUpper(ch))))
{
Console.WriteLine("The first character has to be an uppercase letter!");
isValid = false;
break;
}
if(Char.IsDigit(ch))
{
Console.WriteLine("No digits allowed!");
isValid = false;
break;
}
}
if (isValid)
Console.WriteLine("Hello, " + name);
Esaminiamo semplicemente il nome inserito dall'utente e utilizziamo varie versioni dei metodi Is * per verificare che l'input corrisponda ai nostri semplici requisiti. E ci sono molti altri metodi utili, come il metodo Char.IsLetterOrDigit () . Per un elenco completo, dai un'occhiata alla documentazione .
Sommario
Un tipo di dati char (alias per System.Char) viene utilizzato per rappresentare un singolo carattere Unicode. Per rappresentare più di un carattere, si utilizza una stringa, che è fondamentalmente solo un elenco di caratteri. Nel prossimo articolo, discuteremo le stringhe.