Cosa c'è di meglio per l'implementazione del modello di oggetto nullo:
1) fornisce uno stato speciale ad esempio
o
2) usare ovunque? (Nullable) operatore?
E sto pensando solo alle strutture.
In generale, dovresti evitare null
dove possibile.
Se hai davvero un parametro / campo opzionale, allora è ideomatico rendere l'istanza nullable.
Se hai una struct dove null
significa qualcosa di speciale - qualcosa che non è "questa istanza non esiste", allora dipende. Se altre parti del tuo codice / api usano null per significare questa cosa speciale, usa solo null
. In caso contrario, potrebbe essere meglio fare un'istanza specifica della struct che significhi un altro valore o crearne di propri Type.
Come sempre, non esiste un singolo "migliore" per tutte le situazioni. La progettazione del programma è una questione di compromessi.
Utilizza null
. Non confonde le tue cose con un'istanza nulla, non ingannare le persone che pensano di avere un'istanza nel rendersi conto che non hanno un'istanza ben dopo che si è verificato l'errore, ed è semplicemente molto più facile codewise essere in grado di usa le stesse regole per tutte le cose nullable.
Leggi altre domande sui tag c#