ho appena scritto un'istruzione if nelle linee diÈ un buon uso di ExtensionMethod?
if (value == value1 || value == value2 || value == value3 || value == value4)
//do something
e mi infastidisce che devo sempre ripetere il 'valore ==' parte. Secondo me questo non serve a nulla se non renderlo difficile da leggere.
ho scritto il seguente ExtensionMethod che dovrebbe rendere sopra scenario più leggibile:
public static bool IsEqualToAny<T>(this T value, params T[] objects)
{
return objects.Contains(value);
}
Ora posso scrivere semplicemente
if (value.IsEqualToAny(value1, value2, value3, value4))
//do something
È questo un buon uso di un ExtensionMethod?
EDIT:
Grazie per tutte le grandi risposte. Per la cronaca: ho mantenuto il metodo. Mentre il suggerimento che si può semplicemente utilizzare new []{value1,value2,value3,value4}.Contains(value)
è vero, ho semplicemente preferisco la lettura di questo tipo di istruzione if da sinistra a destra (se questo valore è uguale a uno di questi invece di se questi valori contengono questo valore). Avere un altro metodo mostrato in intellisense su ogni oggetto non è un problema per me.
grazie. È abbastanza generico. Stavo solo confrontando un valore enum - era correlato alla programmazione della GUI quindi non aveva alcun significato commerciale in quanto tale. –