Scoprire i tipi valore e i tipi riferimento
- 8 minuti
Con molti tipi di dati disponibili in C#, scegliere quello giusto da usare significa che è necessario comprendere quando si potrebbe scegliere un tipo di dati rispetto a un altro.
Prima di discutere del motivo per cui è possibile scegliere un tipo di dati rispetto a un altro, è necessario comprendere meglio i tipi di dati. È anche necessario conoscere il funzionamento dei dati e dei tipi di dati in C# e .NET.
Che cos'è i dati?
La risposta alla domanda "what is data" dipende da chi si chiede e in quale contesto viene chiesto.
Nello sviluppo software, i dati sono essenzialmente un valore archiviato nella memoria del computer come una serie di bit. Un bit è un semplice commutatore binario rappresentato come o 01, o piuttosto, "off" e "on". Un singolo bit non sembra utile, ma quando si combinano 8 bit insieme in una sequenza, formano un byte. Se usato in un byte, ogni bit assume un significato nella sequenza. In effetti, è possibile rappresentare 256 combinazioni diverse con soli 8 bit se si usa un sistema numerico binario (base-2).
Ad esempio, in un sistema numerico binario, è possibile rappresentare il numero 195 come 11000011. La tabella seguente consente di visualizzare il funzionamento di questa operazione. La prima riga ha otto colonne che corrispondono a una posizione in un byte. Ogni posizione rappresenta un valore numerico diverso. La seconda riga può archiviare il valore di un singolo bit, 0 o 1.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
Se si aggiunge il numero di ogni colonna nella prima riga che corrisponde a un 1 nella seconda riga, si ottiene l'equivalente decimale alla rappresentazione del sistema numerico binario. In questo caso, sarebbe 128 + 64 + 2 + 1 = 195.
Per usare valori più grandi oltre 255, il computer archivia più byte (in genere a 32 bit o a 64 bit). Se si lavora con milioni di grandi quantità in un'impostazione scientifica, potrebbe essere necessario considerare con maggiore attenzione i tipi di dati in uso. Il codice potrebbe richiedere più memoria per l'esecuzione.
Che ne dici dei dati testuali?
Se un computer capisce 0solo s e 1s, come consente di lavorare con il testo? Usando un sistema come ASCII (American Standard Code for Information Interchange), è possibile usare un singolo byte per rappresentare lettere maiuscole e minuscole, numeri, tab, backspace, nuova riga e molti simboli matematici.
Ad esempio, se si desidera archiviare una lettera a minuscola come valore nell'applicazione, il computer comprende solo la forma binaria di tale valore. Per comprendere meglio come viene gestita una lettera a minuscola dal computer, è necessario individuare una tabella ASCII che fornisce valori ASCII e i relativi equivalenti decimali. È possibile cercare i termini "decimale di ricerca ASCII" per individuare tale risorsa online.
In questo caso, la lettera a minuscola equivale al valore 97decimale . Quindi, si userebbe lo stesso sistema numerico binario inverso per trovare il modo in cui una lettera a ASCII viene archiviata dal computer.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
Poiché 64 + 32 + 1 = 97, il codice ASCII binario a 8 bit per a è 01100001.
È probabile che non sia mai necessario eseguire questi tipi di conversioni autonomamente, ma comprendere la prospettiva dei dati del computer è un concetto fondamentale, in particolare quando si considerano i tipi di dati.
Che cos'è un tipo di dati?
Un tipo di dati è un modo in cui un linguaggio di programmazione definisce la quantità di memoria da salvare per un valore. Esistono molti tipi di dati nel linguaggio C# da usare per molte applicazioni e dimensioni diverse dei dati.
Per la maggior parte delle applicazioni create nella propria carriera, si stabilirà un piccolo subset di tutti i tipi di dati disponibili. Tuttavia, è ancora fondamentale conoscere gli altri e perché.
Valori e tipi riferimento
Questo modulo è incentrato sui due tipi di tipi in C#: tipi di riferimento e tipi valore.
Le variabili dei tipi di riferimento archiviano i riferimenti ai relativi dati (oggetti), ovvero puntano ai valori di dati archiviati altrove. In confronto, le variabili di tipi valore contengono direttamente i dati. Man mano che si apprendono altre informazioni su C#, emergono nuovi dettagli relativi alla differenza fondamentale tra i tipi valore e riferimento.
Tipi di valore semplici
I tipi valore semplici sono un set di tipi predefiniti forniti da C# come parole chiave. Queste parole chiave sono alias (un nome alternativo) per i tipi predefiniti definiti nella libreria di classi .NET. Ad esempio, la parola chiave int C# è un alias di un tipo valore definito nella libreria di classi .NET come System.Int32.
I tipi valore semplici includono molti dei tipi di dati già usati come char e bool. Esistono anche molti tipi di valori integrali e a virgola mobile per rappresentare un'ampia gamma di numeri interi e frazionari.
Riepilogo
- I valori vengono archiviati come bit, che sono semplici interruttori on/off. La combinazione di queste opzioni consente di archiviare solo qualsiasi valore possibile.
- Esistono due categorie di base di tipi di dati: value e tipi reference. La differenza consiste nel modo in cui e dove i valori vengono archiviati dal computer durante l'esecuzione del programma.
- I tipi valore semplice usano un alias di parola chiave per rappresentare i nomi formali dei tipi nella libreria .NET.