1. C# / Говнокод #18989

    +3

    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, 09 Ноября 2015

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

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

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

              В шарпе все эти тьюплы прописаны в либе ( до 16 элементов кажется)
              Ответить
              • Да, подобные классы обычно скриптом генерят.
                Ответить
                • ну не руками же
                  Ответить
                  • Руками опасно — оторвать может.

                    http://i.imgur.com/J0a2pTB.jpg
                    Ответить
                    • > Валков
                      Сначала подумал, что это опечатка... А потом всё равно нихуя не понял. В чём сакральный смысл этого рисунка? Поясните, пожалуйста, тупому анимешнику.
                      Ответить
                      • На рисунке изображён доисторический метод смазки механизмов, разработанный протоукрами.
                        Ответить
                        • А кацапы небось водкой смазывают или блинами с лопаты?
                          Ответить
                          • укропитеками. забросил одного под волки на месяц смазал.
                            Ответить
                            • Может надо было их ватными сделать, как тут http://www.novayagazeta.ru/photos/70348.html , тогда и смазывать не надо будет.
                              Ответить
                              • Специалист по трению и смазкам, объясните нам, почему тогда валы автомобилей не делают ватными. Заговор производителей машинного масла?
                                Ответить
                                • Деревянными раньше делали, может если вата сваляется то получится.

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

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

                                      >Кстати, почему от деревянных деталей в автомобилях отказались?
                                      Ты прикидываешься? Износ же.
                                      Ответить
                                      • А у ватных валков износа не будет?
                                        Ответить
                                        • Если из ваты можно сделать калаш и русский мир, не ужели волков сделать не льзя?
                                          Ответить
                                          • > Если из ваты можно сделать калаш
                                            То можно смело захватывать самолёты. Никакие детекторы не возьмут...
                                            Ответить
                                            • Только смысла нет - после первого же выстрела загорятся
                                              Ответить
                                              • > после первого же выстрела загорятся
                                                Ну а если вата из стекловолокна какого-нибудь? Оно, емнип, не горит.
                                                Ответить
                                              • в самолете второй и не потребуется.
                                                Ответить
                                            • Можно грозить подрывом ватного пердака, я кстати уже писал о такой возможной причине падения вашего блохолета.
                                              Ответить
                                          • Сам ты волк тряпочный
                                            Ответить
                      • Суешь сало рукой - ходишь с крюкой. Арррррр!
                        Ответить
        • В шарпах шаблоны поддерживают только типы.
          Ответить
        • я не знаю шарпа, но тамошние генерики по слухам близки к 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);
      Ответить
    • Ехал object через object...
      Ответить
    • В смысле все методы называются неграмотно и принимают 42 параметра типа object?

      А что еще может делать эта библиотека?
      Ответить
      • кон-пе-ли-ро-вать-ся
        Ответить
      • В пост объяснение не влезет, можешь сам посмотреть: [Url=http://www.cyberforum.ru/post8314073.html]http://www.cyberforum.ru/post8314073.html[/url]
        Ответить

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