Я просто написал, если заявление в строкахЯвляется ли это хорошим использованием ExtensionMethod?
if (value == value1 || value == value2 || value == value3 || value == value4)
//do something
и это раздражает меня, что я всегда должен повторить «значение ==» часть. По-моему, это не имеет никакой цели, кроме как затруднить чтение.
я написал следующее, что метод расширения должен сделать выше сценарий более читабельным:
public static bool IsEqualToAny<T>(this T value, params T[] objects)
{
return objects.Contains(value);
}
Теперь я могу просто написать
if (value.IsEqualToAny(value1, value2, value3, value4))
//do something
Является ли это хорошее использование в метод расширения?
EDIT:
Спасибо за все великие ответы. Для записи: я сохранил метод. Хотя предположение, что вы могли бы просто использовать new []{value1,value2,value3,value4}.Contains(value)
, правда, я просто предпочитаю чтение такого рода, если заявление слева направо (, если это значение равно любой из этих вместо , если эти значения содержат это значение). Еще один метод, проявляющийся в intellisense для каждого объекта, не является проблемой для меня.
спасибо. Это довольно общий характер. Я просто сравнивал значение enum - это было связано с программированием GUI, поэтому у него не было никакого коммерческого значения как такового. –