Ho il seguente metodo di estensione:È possibile refactoring questo metodo di estensione?
public static void ThrowIfArgumentIsNull<T>(this T value, string argument)
where T : class
{
if (value == null)
{
throw new ArgumentNullException(argument);
}
}
e questo è un esempio del suo utilizzo ....
// Note: I've poorly named the argument, on purpose, for this question.
public void Save(Category qwerty)
{
qwerty.ThrowIfArgumentIsNull("qwerty");
....
}
funziona al 100% bene.
Ma, non mi piace come devo fornire il nome della variabile, solo per aiutare il mio messaggio di eccezione.
Mi chiedevo se è possibile refactoring il metodo di estensione, in modo che si potrebbe definire come questo ...
qwerty.ThrowIfArgumentIsNull();
e figure automaticamente che il nome della variabile è 'QWERTY' e, pertanto, lo usa come valore per ArgumentNullException.
Possibile? Sto assumendo che la riflessione potrebbe fare questo?
vedere anche http://stackoverflow.com/questions/869610/c-resolving-a-parameter-name-at-runtime/869629#869629 –
Controllare http://msmvps.com/blogs/jon_skeet/archive/ 2009/12/09/quot-magic-quot-null-argument-testing.aspx - bloggato :) –
Penso che questa sia una soluzione molto difficile per un problema molto semplice ... Se stai usando Visual Studio, puoi usa i frammenti di codice per semplificare l'operazione;) –