Лучше практиковаться в написании методов расширения, возвращающих bool? - PullRequest
0 голосов
/ 10 августа 2011

После рассмотрения этого ответа и метода расширения:

public static bool IsIn<T>(this T source, params T[] list)
{
    if(null == source) throw new ArgumentNullException("source");
    return list.Contains(source);
}

Какие ваши любимые методы расширения для C #?(codeplex.com/extensionoverflow)

Лучше ли написать другой метод расширения, который бы проверял, нет ли переменной в списке, например if (x.IsNotIn (1,2,3))или лучше просто отрицать первый метод расширения, например if (! x.IsIn (1,2,3))?

Ответы [ 3 ]

2 голосов
/ 10 августа 2011

Я предпочитаю отрицание метода положительного случая.Зачем переписывать или наследовать буфер обмена?

1 голос
/ 10 августа 2011

Просто используйте: if(!x.IsIn(1,2,3)) { do_stuff(); }.Contains просто выполняет итерации по массиву, так что не существует хорошего способа оптимизировать его, так как это то, что вам придется делать тоже.

1 голос
/ 10 августа 2011

Это всегда зависит от вашего варианта использования. В общем, вы должны создавать методы расширения, потому что вы используете их, а не ради самого метода расширения. Если вы обнаружите, что всегда печатаете! Item.IsIn (List); Вы можете предпочесть написать Item.IsNotIn (Список); С другой стороны, многие предложили бы! Это действительно личный выбор и зависит от того, что лучше всего подходит для вашей проблемной области.

...