C # - Tipi di dati
Le variabili in C # sono classificate nei seguenti tipi:
- Tipi di valore
- Tipi di riferimento
- Tipi di puntatori
Tipo di valore
Alle variabili del tipo di valore può essere assegnato direttamente un valore. Sono derivati dalla classe System.ValueType.
I tipi di valore contengono direttamente dati. Alcuni esempi sonoint, char, and float, che memorizza rispettivamente numeri, alfabeti e numeri in virgola mobile. Quando dichiari un fileint type, il sistema alloca memoria per memorizzare il valore.
La tabella seguente elenca i tipi di valore disponibili in C # 2010 -
genere | Rappresenta | Gamma | Valore predefinito |
---|---|---|---|
bool | Valore booleano | Vero o falso | Falso |
byte | Intero senza segno a 8 bit | Da 0 a 255 | 0 |
char | Carattere Unicode a 16 bit | U +0000 a U + ffff | "\ 0" |
decimale | Valori decimali precisi a 128 bit con 28-29 cifre significative | (-7,9 x 10 da 28 a 7,9 x 10 28 ) / 10 da 0 a 28 | 0,0M |
Doppio | Tipo a virgola mobile a doppia precisione a 64 bit | (+/-) 5,0 x 10 da -324 a (+/-) 1,7 x 10 308 | 0.0D |
galleggiante | Tipo a virgola mobile a precisione singola a 32 bit | Da -3,4 x 10 38 a + 3,4 x 10 38 | 0.0F |
int | Tipo intero con segno a 32 bit | -2.147.483.648 a 2.147.483.647 | 0 |
lungo | Tipo intero con segno a 64 bit | -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 | 0L |
sbyte | Tipo intero con segno a 8 bit | Da -128 a 127 | 0 |
corto | Tipo intero con segno a 16 bit | Da -32.768 a 32.767 | 0 |
uint | Tipo intero senza segno a 32 bit | Da 0 a 4.294.967.295 | 0 |
ulong | Tipo intero senza segno a 64 bit | Da 0 a 18.446.744.073.709.551.615 | 0 |
ushort | Tipo intero senza segno a 16 bit | Da 0 a 65.535 | 0 |
Per ottenere la dimensione esatta di un tipo o di una variabile su una particolare piattaforma, puoi utilizzare il sizeofmetodo. L'espressione sizeof (tipo) restituisce la dimensione di archiviazione dell'oggetto o del tipo in byte. Di seguito è riportato un esempio per ottenere la dimensione del tipo int su qualsiasi macchina:
using System;
namespace DataTypeApplication {
class Program {
static void Main(string[] args) {
Console.WriteLine("Size of int: {0}", sizeof(int));
Console.ReadLine();
}
}
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Size of int: 4
Tipo di riferimento
I tipi di riferimento non contengono i dati effettivi memorizzati in una variabile, ma contengono un riferimento alle variabili.
In altre parole, si riferiscono a una posizione di memoria. Utilizzando più variabili, i tipi di riferimento possono fare riferimento a una posizione di memoria. Se i dati nella posizione di memoria vengono modificati da una delle variabili, l'altra variabile riflette automaticamente questo cambiamento di valore. Esempio dibuilt-in i tipi di riferimento sono: object, dynamic, e string.
Tipo di oggetto
Il Object Typeè la classe base definitiva per tutti i tipi di dati in C # Common Type System (CTS). Object è un alias per la classe System.Object. Ai tipi di oggetto possono essere assegnati valori di qualsiasi altro tipo, tipo di valore, tipo di riferimento, tipo predefinito o definito dall'utente. Tuttavia, prima di assegnare valori, è necessaria la conversione del tipo.
Quando un tipo di valore viene convertito in un tipo di oggetto, viene chiamato boxing e d'altra parte, quando un tipo di oggetto viene convertito in un tipo di valore, viene chiamato unboxing.
object obj;
obj = 100; // this is boxing
Tipo dinamico
È possibile memorizzare qualsiasi tipo di valore nella variabile del tipo di dati dinamico. Il controllo del tipo per questi tipi di variabili viene eseguito in fase di esecuzione.
La sintassi per la dichiarazione di un tipo dinamico è -
dynamic <variable_name> = value;
Per esempio,
dynamic d = 20;
I tipi dinamici sono simili ai tipi di oggetto tranne per il fatto che il controllo del tipo per le variabili del tipo di oggetto avviene in fase di compilazione, mentre quello per le variabili di tipo dinamico avviene in fase di esecuzione.
Tipo di stringa
Il String Typeconsente di assegnare qualsiasi valore di stringa a una variabile. Il tipo di stringa è un alias per la classe System.String. È derivato dal tipo di oggetto. Il valore per un tipo di stringa può essere assegnato utilizzando stringhe letterali in due forme: quoted e @quoted.
Per esempio,
String str = "Tutorials Point";
Una stringa letterale @quoted ha il seguente aspetto:
@"Tutorials Point";
I tipi di riferimento definiti dall'utente sono: class, interface o delegate. Discuteremo questi tipi nel capitolo successivo.
Tipo di puntatore
Le variabili del tipo di puntatore memorizzano l'indirizzo di memoria di un altro tipo. I puntatori in C # hanno le stesse funzionalità dei puntatori in C o C ++.
La sintassi per la dichiarazione di un tipo di puntatore è -
type* identifier;
Per esempio,
char* cptr;
int* iptr;
Discuteremo i tipi di puntatore nel capitolo "Codici non sicuri".