Właśnie napisał if w liniiCzy to dobry użytek z ExtensionMethod?
if (value == value1 || value == value2 || value == value3 || value == value4)
//do something
i to denerwuje mnie, że zawsze trzeba powtórzyć „wartość ==” części. Moim zdaniem nie służy to niczemu poza utrudnieniem czytania.
napisałem następujący ExtensionMethod że należy uczynić bardziej czytelny powyżej scenariusz:
public static bool IsEqualToAny<T>(this T value, params T[] objects)
{
return objects.Contains(value);
}
Teraz mogę po prostu napisać
if (value.IsEqualToAny(value1, value2, value3, value4))
//do something
Czy to dobry zwyczaj o ExtensionMethod?
EDYTOWANIE:
Dzięki za wszystkie wspaniałe odpowiedzi. Dla przypomnienia: zachowałem metodę. Natomiast sugestia, że można po prostu użyć new []{value1,value2,value3,value4}.Contains(value)
jest prawdą, po prostu wolą czytać tego rodzaju if od lewej do prawej (jeśli ta wartość jest równa żadnej z tych zamiast jeśli wartości te zawierają tę wartość). Posiadanie jeszcze jednej metody pojawienia się w intellisense na każdym obiekcie nie jest dla mnie problemem.
dzięki. Jest dość ogólny. Właśnie porównywałem wartość enum - było to związane z programowaniem GUI, więc nie miało to żadnego znaczenia biznesowego jako takiego. –