Se osservi il metodo XContainer.Add (contenuto dell'oggetto) puoi vedere quell'id non richiede content
per non essere nullo.
Non fa nulla in caso di null.
Tuttavia List.AddRange (raccolta IEnumerable) richiede un'istanza e genera ArgumentNullException
altrimenti. Qui l'autore del codice ha deciso che l'eccezione era più appropriata del silenzio.
Potrebbero implementarlo come:
bool List<T>.AddRange(IEnumerable<T> collection)
e restituisce true solo se la raccolta non è vuota ... ma non è così.
Molto spesso mi chiedo se lanciare o semplicemente non fare nulla in caso di parametri sbagliati. La cue disponibile per me è la domanda: "Può un'eccezione aiutare il cliente della mia funzione a rilevare errori logici e stato di programma inatteso?".
Se rispondo a me stesso: "Sì, può nella maggior parte dei casi d'uso", quindi aderisco al lancio.
Tuttavia, a volte il modo migliore non è molto evidente per me. È un po 'scomodo non avere argomenti forti per favorire un approccio rispetto all'altro.
Apprezzerò qualsiasi raccomandazione valida per selezionare tra queste alternative.