Ho cercato delle indicazioni su questo perché il concetto è stato introdotto in .net 2.0.Perché non dovrei usare sempre i tipi nullable in C#
Perché dovrei voler utilizzare tipi di dati non annullabili in C#? (Una domanda migliore è perché non scegliere i tipi annullabili per impostazione predefinita e utilizzare solo tipi non annullabili quando ciò ha un significato esplicito.)
C'è un colpo "significativo" alle prestazioni nella scelta di un tipo di dati nullable su peer non annullabile?
Preferisco di gran lunga controllare i miei valori rispetto a null anziché Guid.empty, string.empty, DateTime.MinValue, < = 0, ecc. E per lavorare con i tipi nullable in generale. E l'unica ragione per cui non scelgo più spesso i tipi nullable è la sensazione di prurito nella parte posteriore della mia testa che mi fa pensare che sia più che retrocompatibile che costringe quel qualcosa in più '?' carattere per consentire esplicitamente un valore nullo.
C'è qualcuno là fuori che sempre (quasi sempre) sceglie tipi nullable anziché tipi non annullibili?
Grazie per il vostro tempo,
Jon Skeet è corretto su System.Nullable che è una struttura.Quindi verrà assegnato allo stack e non all'heap. –
La domanda sul colpo di prestazione può essere risolta solo da te; sei quello che sa cosa significa "significativo" per i tuoi clienti. Ma l'hit dovrebbe essere minimo - un int nullo è praticamente lo stesso di un int più un bool flag che indica se è nullo; il tipo Nullable è solo un modo conveniente per impacchettare l'int con il flag. –