Re: Fluent interfaces, generics & type inference
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 07.05.16 19:07
Оценка: 66 (1) +1
Здравствуйте, Sinix, Вы писали:

S>Какие будут идеи?


Если от второго параметра не требовать IRangeFactory (а я затрудняюсь сказать где может понадобиться), то так:

    static class RangeExtension
    {
        public static V Union<T,V>(this V a, IRange<T> b) where V:IRangeFactory<T,V> =>
            a.Create(
                a.From <= b.From ? a.From : b.From,
                a.To >= b.To ? a.To : b.To);

        public static V Intersect<T, V>(this V a, IRange<T> b) where V : IRangeFactory<T, V> =>
            a.Create(
                a.From >= b.From ? a.From : b.From,
                a.To <= b.To ? a.To : b.To);
    }


ЗЫ. Бонус тоже мой
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.