acabo de escribieron una sentencia if en las líneas de¿Es este un buen uso de un ExtensionMethod?
if (value == value1 || value == value2 || value == value3 || value == value4)
//do something
y me molesta que siempre tengo que repetir el 'valor ==' parte. En mi opinión, esto no tiene otra finalidad que no sea dificultar la lectura.
me escribió lo siguiente ExtensionMethod que debería hacer más legible escenario anterior:
public static bool IsEqualToAny<T>(this T value, params T[] objects)
{
return objects.Contains(value);
}
Ahora simplemente hay que escribir
if (value.IsEqualToAny(value1, value2, value3, value4))
//do something
Es este un buen uso de un ExtensionMethod?
EDIT:
Gracias por todas las grandes respuestas. Para el registro: he guardado el método. Si bien la idea de que usted podría simplemente utilizar new []{value1,value2,value3,value4}.Contains(value)
es cierto, simplemente prefiero leer este tipo de instrucción if de izquierda a derecha (si este valor es igual a cualquiera de estos en lugar de si estos valores contienen este valor). Tener un método más que aparezca en intellisense en cada objeto no es un problema para mí.
gracias. Es bastante genérico. Solo estaba comparando un valor de enumeración: estaba relacionado con la programación de la GUI, por lo que no tenía ningún significado comercial como tal. –