I tienen el siguiente método de extensión:¿Es posible refactorizar este método de extensión?
public static void ThrowIfArgumentIsNull<T>(this T value, string argument)
where T : class
{
if (value == null)
{
throw new ArgumentNullException(argument);
}
}
y esto es un ejemplo de su uso ....
// Note: I've poorly named the argument, on purpose, for this question.
public void Save(Category qwerty)
{
qwerty.ThrowIfArgumentIsNull("qwerty");
....
}
funciona al 100% bien.
Pero, no me gusta cómo tengo que proporcionar el nombre de la variable, solo para ayudar a mi mensaje de excepción.
Me preguntaba si es posible refactorizar el método de extensión, por lo que se podría llamar así ...
qwerty.ThrowIfArgumentIsNull();
y automáticamente se da cuenta de que el nombre de la variable es 'QWERTY' y por lo tanto lo usa como el valor de ArgumentNullException.
¿Posible? Supongo que la reflexión podría hacer esto?
ver también http://stackoverflow.com/questions/869610/c-resolving-a-parameter-name-at-runtime/869629#869629 –
Comprobar http://msmvps.com/blogs/jon_skeet/archive/ 2009/12/09/quot-magic-quot-null-argument-testing.aspx - blogged :) –
Creo que esta es una solución muy difícil para un problema muy simple ... Si está usando Visual Studio, puede use fragmentos de código para que esto sea muy fácil;) –