I tipi di riferimento non possono essere raggruppati in Nullable<T>
a causa di un vincolo where T : struct
sul generico.
Le ragioni di questo vincolo sono:
- tipi di riferimento sono già annullabile per definizione, e
- Nullable non è molto efficiente dello spazio, ma più di un supporto di valori Null "logico".
Nullable<T>
ha una proprietà bool HasValue
e un tipo T
struttura Value
che contiene il valore effettivo value-type.
Anche se HasValue == false
(ovvero se la variabile con valore nulla spostato è impostata su null
), ANCORA si utilizza lo spazio per il tipo di valore come se fosse lì.
E 'logicamente annullabile per consentire di specificare opzionale comportamento, ma non salva qualsiasi spazio. Questo è molto simile a come boost :: opzionale funziona in C++.
fonte
2011-09-14 15:57:24
che risposta !!!, grazie ..... per spiegare facilmente – Ajay2707