Lesson 1
Value Types
I value types costituiscono il più semplice dato del Framework e derivano da System.Object come tutti i tipi di dato in .Net. Vengono allocati nello stack e per questo sono molto efficienti. Contengono il dato a differenza dei reference types.
Sono di tre tipi:
- Built in value types
- User defined value types
- Enumerations
I primi sono i tipi di base come byte, int (entrambi anche unsigned), int16-32-64, single, double e decimal. I più diffusi vista l'ottimizzazione presente sono gli int32 e i double. A questi si aggiungono char, boolean, datetime e intptr (puntatori).
Primo errore sul libro (pag. 5): il tipo Boolean occupa 1 byte e non 4 bytes!
In caso di assegnamenti tra variabili value types viene effettuata una copia del valore.
A questi dati dal Framework 2.0 si aggiungono i relativi Nullable definiti come
Nullable<bool> b = null;
o
bool? b = null;
con notazione abbreviata (in C#).
I secondi sono i dati di tipo struct, ovvero composizioni di value types, molto semplici (in genere sotto i 16 bytes) come Point. Non devono essere castabili a Reference Types e non cambiano dopo la creazione.
I terzi permettono di utilizzare delle parole al posto degli int e definiscono quindi degli insiemi di possibilità.
Technorati tags: [70-536]