Diciamo che ho un metodo di estensioneC#: Le migliori pratiche per la convalida di "questo" argomento in metodi di estensione
public static T TakeRandom<T>(this IEnumerable<T> e)
{
...
Per convalidare l'argomento e, devo:
A) se (e == null) throw new NullReferenceException()
B) se (e == null) throw new ArgumentNullException ("e")
C) Non controllare la posta
Qual è il consenso?
Il mio primo pensiero è quello di convalidare sempre gli argomenti, quindi lanciare un'eccezione ArgumentNullException. Poi di nuovo, dato che TakeRandom() diventa un metodo di e, forse dovrebbe essere una NullReferenceException. Ma se si tratta di una NullReferenceException, se provo a utilizzare un membro di e all'interno di TakeRandom(), verrà comunque generata NullReferenceException.
Forse dovrei fare un picco usando Reflector e scoprire cosa fa il framework.
Ho avuto esattamente questa domanda mi in testa oggi. Devi amare StackOverflow.com - Ha tutte le risposte (e le domande, a volte più volte). :) – orj