Си диез / Говнокод #18989 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
public object Synchronous( 
Func<object,object,object,object,object   ,object   ,object  ,object, object  , object , object  , object, object  , object, object, object, object>   func,
 
object argument1,     object argument2,     object argument3,     object argument4   ,
object argument5,     object argument6 ,    object argument7,     object argument8  ,
object argument9,     object argument10 ,  object argument11 ,  object argument12 ,
object argument13 ,  object argument14 ,  object argument15 ,  object argument16)

Человек написал сверх-полезную библиотеку для асинхронного программирования. Практически все методы выглядят так.

Запостил: Psilon Psilon, (Updated )

Комментарии (45) RSS

  • написано под впечатлением от boost::mpl, там в старых версиях весь код такой
    Ответить
    • А в c# вариадик генерики не завезли? Поди только через vararg и рефлексию можно как-то изъебнуться?
      Ответить
      • скажи что это и я скажу тебе как это называется в шарпе.
        Ответить
        • > что это
          Это когд параметром обобщённой функции/класса может быть произвольное множество типов. Типичный пример: один класс тюплов на произвольное кол-во разнотипных элементов:
          Tuple<A, B, C ...>

          Раз параметры шаблонов в шарпе - только типы, то почти наверняка такое запилить нельзя, т.к. непонятно, как потом извлекать из тюпла отдельные элементы. В крестах это делается через обобщённую функцию с компайл-тайм параметром-числом.
          Ответить
          • Значит не как не называются.

            В шарпе все эти тьюплы прописаны в либе ( до 16 элементов кажется)
            Ответить
                  • > Валков
                    Сначала подумал, что это опечатка... А потом всё равно нихуя не понял. В чём сакральный смысл этого рисунка? Поясните, пожалуйста, тупому анимешнику.
                    Ответить
                    • На рисунке изображён доисторический метод смазки механизмов, разработанный протоукрами.
                      Ответить
                      • А кацапы небось водкой смазывают или блинами с лопаты?
                        Ответить
                        • укропитеками. забросил одного под волки на месяц смазал.
                          Ответить
                            • Специалист по трению и смазкам, объясните нам, почему тогда валы автомобилей не делают ватными. Заговор производителей машинного масла?
                              Ответить
                              • Деревянными раньше делали, может если вата сваляется то получится.

                                >Специалист по трению и смазкам
                                Это не ко мне.
                                Ответить
                                • Значит, в том, что вата может заменить дерево, уверенности нет. А зачем тогда советовать?

                                  Деревянные оси телег всё равно смазывали... дёгтем. Кстати, почему от деревянных деталей в автомобилях отказались?
                                  Ответить
                                  • Если из ваты можно делать калаши и ракеты, то почему нельзя все остальное?

                                    >Кстати, почему от деревянных деталей в автомобилях отказались?
                                    Ты прикидываешься? Износ же.
                                    Ответить
                                      • Если из ваты можно сделать калаш и русский мир, не ужели волков сделать не льзя?
                                        Ответить
                                        • > Если из ваты можно сделать калаш
                                          То можно смело захватывать самолёты. Никакие детекторы не возьмут...
                                          Ответить
                                          • Только смысла нет - после первого же выстрела загорятся
                                            Ответить
                                            • > после первого же выстрела загорятся
                                              Ну а если вата из стекловолокна какого-нибудь? Оно, емнип, не горит.
                                              Ответить
                                          • Можно грозить подрывом ватного пердака, я кстати уже писал о такой возможной причине падения вашего блохолета.
                                            Ответить
      • я не знаю шарпа, но тамошние генерики по слухам близки к SystemF констрейнтам
        в этом формализме никаких "вариадик" вещей нет, и поэтому не очень понятно, как они должны работать
        не могу с ходу сказать, возможно ли выразить их вообще
        Ответить
        • шаблоны там таковы - типобезопасность. Суешь туда контракты типа - и можешь юзать методы этих типов у данного обьекта. Все остальное - нельзя. В CIL под каждый засунутый тип(набор типов) генерится свой метод(класс)
          Ответить
  • public delegate TResult Func<out TResult>();
    public delegate TResult Func<in T, out TResult>(T arg);
    public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);
    public delegate TResult Func<in T1, in T2, in T3, out TResult>(T1 arg1, T2 arg2, T3 arg3);
    public delegate TResult Func<in T1, in T2, in T3, in T4, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);
    public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
    public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, in T6, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
    public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, in T6, in T7, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7);
    public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, in T6, in T7, in T8, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8);
    Ответить
  • В смысле все методы называются неграмотно и принимают 42 параметра типа object?

    А что еще может делать эта библиотека?
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8