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

    +120

    1. 1
    2. 2
    3. 3
    4. 4
    string tmpS;
    //идут всякие монипуляции с этой строкой
    //. . .
    tmpS.Remove(0, tmpS.Length);

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

    Запостил: inser, 04 Марта 2011

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

    • Всё правильно. Поработал - убери за собой.
      Ответить
      • борьба с утечками по памяти...
        Ответить
      • А почему бы не написать просто tmpS = "" ?
        Ответить
        • Вот ты присвоил tmpS на новую строку, а староя-то строка висит! Надо ей явно написать Remove.
          Ответить
          • Люди, шо вы гонете?))) этот код на имеет смысла, поскольку строки в шарпе неизменяемы. Вот если б он написал tmpS = tmpS.Remove(0, tmpS.Length); , тогда tmpS указывала бы на новую строку(результат выполнения Remove). А старый объект зохавал бы сборщик мусора.
            Ответить
          • GC существует для подобных вещей.
            Ответить
    • этот код не делает ничего
      Ответить
    • Если написано в проекте .NET 4.0, то это - некритичный говнокод, ибо к StringBuilder добавили кошерный метод Clear() :)
      Ответить

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