Здравствуйте, AndrewVK, Вы писали:
S>>Надо бы сделать кодогенерацию
AVK>Там всего 5 вариантов. Шаблон будет сопоставимого размера и несопоставимой мутности. Но если надо расширить до 8 аргументов по аналогии с туплами и action/func, то тут уже лучше генерить.
Ну вот у меня крутится мысля этот шаблон переиспользовать, например, для хелпера для вывода типов выражений, что-то типа
// Expression<Func<int, int, int>>
var expression = ExpressionHelpers.Func((int x, int y) => x + y); // Имя условное
сделать часть шаблона переиспользуемой — 100% пригодится.
S>> + оставить только одну перегрузку с optional args.
S>> См гадлайны.
AVK>Мне кажется это не совсем наш случай. У нас пока никакой backward compatibility нет в принципе.
Ну так после релиза будет
Иначе начнётся dll hell, когда одна библиотека зависит от CodeJam 1.0.0, вторая — от 1.1.3 и обе версии бинарно несовместимы.
S>>2. CollectionsExtensions. Вот тут не надо params?
AVK>ИМХО надо.
Ок, добавляю.
S>>3. EnumerableExtensions.Index() Идея ок, реализация хромает.
S>>IndexedItem не реализует equals/gethashcode/equality operators.
AVK>А оно надо?
Я это узнал сложным путём — сделал Distinct по похожей структуре. Угу, результат был
немного предсказуем
S>>Имя метода — может, что-то типа items.Indexed() ?
AVK>FDG
Ну, я на своём варианте не настаиваю
Если вдруг у кого-то появится предложение получше
.Index() — поменяем.
S>>6. InterlockedOperations — надо добавить generic update на базе CAS loop,
AVK>+1
Тож добавляю. Как добавлю — попрошу посмотреть.
S>>7. XNodeExtensions — Required/Optional переименовать в стандартные Get/TryGet/XxxOrDefault.
AVK>Это, имхо, не совсем тот случай, надо подумать.
Понял, перенёc вопрос
в соседний топикАвтор: AndrewVK
Дата: 18.04.16
.