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

    +132

    1. 1
    2. 2
    3. 3
    long id;
    try { id = long.Parse(e.Item.Cells[0].Text); }
    catch { id = 0; }

    Эта жемчужина прекрасно описывает весь говнокод производимый различными группами людей в моей компании.

    Запостил: piocsic, 12 Июня 2012

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

    • Что-то подобное написал на 2 курсе. Препод поржал)
      Ответить
    • длинные стринги

      зато можно вписать текст
      Ответить
    • апофеоз, не спорю (: но все же, как правильно распарсить стринги в число?
      Ответить
      • http://ideone.com/3M32I
        Как-то так?
        Ответить
        • int i;
          Int32.TryParse(input, out i);
          документация по out гарантирует что переменная будет инициализирована.
          и будет это default(Int32).
          Ответить
          • Да, кстати тогда и инициализировать в ноль не нужно.
            Ответить
          • Возможно код из .net framework 1.1, насколько я помню, там не было long.TryParse
            Ответить
            • Проверил, так похоже и есть. В msdn по long.TryParse нет инфы для 1.1
              Ответить
              • Даже в обсираемой всеми Delphi 7 был TryStrToInt ;)
                Как же MS так пролетели.
                Ответить
                • Потому что судя по всему 1.0 выпускали впопыхах, а 1.1 был во многом просто багфикс 1.0
                  Ответить
                • А ещё возможно потому что в первых версиях многое тупо без задней мысли копировалось 1-к-1 с Java, и в Java'овском прототипном Long нет метода tryParseLong, есть только parseLong.
                  Ответить
              • Судя по перфорсу, код этот был написан во времена дотнет 2.0.

                Да если бы он и был написал во времена 1.0, всё равно нельзя проглатывать все исключения. Надо было хотя бы прописать catch (FormatException) {}
                Ответить

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