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

    +111

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    // todo
    /// <summary>
    /// Генерация пароля из GUID
    /// </summary>
    /// <param name="guid">GUID</param>
    /// <returns>пароль</returns>
    public string PasswordByGuid(string guid)
    {
        return guid[33].ToString()
            + guid[28].ToString()
            + guid[2].ToString()
            + guid[10].ToString()
            + guid[21].ToString()
            + guid[15].ToString();
    }

    Коммерческий проект :)

    Запостил: ddv_demon, 08 Ноября 2012

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

    • Самое забавное, если этот guid это по совместительству является ключем в таблице юзверей...
      Ответить
    • Не оптимально! Где StringBuilder, блджад?
      Ответить
      • Как это где? В цепочке операторов + же он. Его не видно, но он есть.

        P.S. Кстати, а если я пишу "a"+b, то тут тоже генерится стрингбилдер?
        Ответить
        • посмотрел ILDASM'ом в ГК получился вызов System.String::Concat. Никаких StringBuilder'ов.
          Ответить
          • А. Это же шарп. Сорри... спутал с жабкой.
            Ответить
            • Фу говно. Неужели они не могли своровать позаимствовать и этот нюанс.
              Ответить
              • concat немного производительней чем в stringbuilder, особенно для аргументов меньше 5 штук, в таком случае буквально нулевой оверхед. при где-то 5 аргументах и более создаётся неявный массив строк (params Object[] как в яве в принципе), тоже по идее должен быть немного производительнее чем StringBuilder
                Ответить
            • StringBuilder в шарпе есть. Но невидимые дела такого рода под полом компилятор не творит.
              Ответить
    • Вспоминается этот http://xkcd.com/221/ комикс.
      Ответить
      • ждём возмущений Тараса и ссылку на славянскую версию
        Ответить
        • int getRandom(int from, int to)
          {
               return (from + to) / 2
          }


          Так покруче.
          Ответить
          • Нет, тут нет случайности. А там все-таки кости бросали ;)
            Ответить
            • а если так:
              int getRealRandom(int from, int to)
              { 
                 return getRandom( 100500, 42); 
              }
              ?
              Ответить
              • int getRealRandom(int from, int to)  
                    static int n = getRandom( 100500, 42)
                    return n;
                }

                Если конечно шарп умеет статики в функциях.
                Ответить
                • >Если конечно шарп умеет статики в функциях.
                  Не умеет. Нужно поле делать.
                  Ответить
            • этоже мат. ожидание случ. величины
              всё правильно!
              Ответить
        • На хкцд.ру этого номера нет, поэтому я промолчал.
          Ответить
          • ну модеров-то посрамил хотя бы?
            Ответить
            • модеров говнокода?
              Ответить
              • Ну а кого же еще?
                moderator
                Ответить
              • модеров хкцд.ру
                Ответить
                • Злые модераторы хкцд.рфру удалили столь нужный нам рисунок?
                  Ответить
                • Ну может они не смогли перевести.
                  Ответить
                  • Функция ПолучитьСлучайноеЧисло()
                        Возврат 4; // получено броском правильной игральной кости
                                   // случайность гарантирована
                    КонецФункции
                    Ответить
                    • Честной же.
                      Ответить
                      • "честным броском кости" тогда уж.
                        И возвращаемый тип куда-то пропал (или в 1С он не указывается?)
                        Ответить
                        • > "честным броском кости" тогда уж.
                          Окай. Не специалист в ролёвках ;(

                          > И возвращаемый тип куда-то пропал
                          И в 1с тоже. Но судя по соседним говнокодам - таки не указывается.
                          Ответить
                        • Да, немного протормозил, mea culpa. Решил придраться к одному слову, вот и вышло не ахти.
                          Ответить
      • int getRandom()
        {
            int a;
            return a;
        }
        Ответить
        • Вот это будет истинная случайность. Поскольку нельзя предсказать поведение (по крайней мере, без знания контекста до деталей). В отличие от псевдослучайного rand...
          Ответить
        • жалко только, что не скомпилируется. C# же
          Ответить
          • http://ideone.com/e89ici
            http://ideone.com/afMXNG
            Ответить
            • А блин, это же раздел не крестов...
              Ответить
              • http://ideone.com/OlbbTl
                Может как-нибудь так? У кого шарп под рукой с нужным ключем компиляции?
                Ответить
                • во чо нагуглил на знакомого товарища по ГК:
                  http://stackoverflow.com/questions/6054750/no-unassigned-local-variable-error
                  Ответить
                  • Я думал так сделать, если первый вариант не сработает.
                    Ответить
            • http://ideone.com/8iE54O
              Ответить
            • ну а что ж ты само значение-то не вывел :)
              http://ideone.com/kIqyOg
              Ответить
        • int getRandom() {
              int a = (int) new int;
              delete (int*)a;
              return a;
          }


          Нужно больше энтропии!
          Ответить
          • Или даже так:
            int getRandom() {
                int *a = new int;
                int b = *a;
                delete a;
                return b;
            }
            Ответить
            • > int b = *a;
              > delete a;
              > return b;

              Неверно. В переменной b уже будет лежать 0, когда освободим память по a - ничего не произойдёт, следовательно вернётся 0.
              Ответить
              • a - указатель на случайный кусок памяти, new для надёжности.
                Ответить
            • а ещё можно перепочитать топик и название раздела
              Ответить
          • Хорошо работает. Только сколько не вызывай одно и тоже число на каждый запуск программы.
            Ответить
    • public static string PasswordByGuid(Guid guid)
      {
          string s = guid.ToString();
          return s[8] + s[13] + s[18] + s[23];
      }
      Ответить
    • Просто слов нет! :)
      Ответить

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