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

    +136

    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
    private static string RemoveInvalidChars(string source)
    {
        foreach (var c in invalidChars)
            source = source.Replace(c.ToString(), "");
    
        return source;
    }
    
    public static string Validate(string source)
    {
        source = RemoveInvalidChars(source);
    
        return source;
    }

    Запостил: pushistayapodmyshka, 02 Февраля 2015

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

    • Если еще написать ContainsInvalidChars, то можно будет в цикле:
      while (ContainsInvalidChars(source))
      {
          source = Validate(source);
      }
      Ответить
    • Код вполне себе нормальный. Логичное имя функции и понятно написано.
      Будет тупить - легко переписать.
      Ответить
      • foreach (var c in invalidChars)
                source = source.Replace(c.ToString(), "");
        
        http://www.youtube.com/watch?v=VxFkMFS0mFA
        Ответить
      • > Логичное имя функции
        я надеюсь это был сарказм
        Ответить
        • Может я туплю и чего-то не вижу, но функция RemoveInvalidChars которая удаляет невалидные символы мне кажется вполне логичной.
          Ответить
          • речь, очевидно, о функции Validate
            Ответить
            • to validate - делать valid'ным. Удаление всего invalid'ного, ИМХО, вполне нормальная альтернатива.
              Остальное зависит от контекста.
              Ответить
              • Нет, у validate нет такого значения. Validate всегда значит "оценить" и никогда не "сделать так, чтобы подходило". Еще, как вариант, validate может значить "вынести решение о том, что что-то подходит". Дургими словами validate в данном контексте должно было бы сравнить строку с убраными невалидными символами с оригиналом и если не получилось - бросить ошибку (т.как действие validate совершить не получилось). Но как правило не хочется, чтобы валидация работала через ошибки, так что лучше было бы переписать как isValid и изменить код соответственно.
                Ответить
                • Ну да, эта функция скорее Cleanup, чем Validate.
                  Ответить
                  • В данном контексте эта функция просто дубликат RemoveInvalidChars. Такое можно оправдать, например, наличием интерфейса, который зачем-то заставляет реализовать метод именно с таким именем, но придумывать ей другое оправдание через перименование - зачем?
                    Ответить
                    • Ну я про более общий случай, не для этой задачи.
                      Ответить
              • validate
                - to make something officially acceptable or approved, especially after examining it.
                Ответить
          • > которая удаляет невалидные символы
            А какие символы невалидны?
            Ответить
            • те которые отсеивает валидатор.
              Ответить
            • > А какие символы невалидны?
              Невалидны только неверные символы и они должны быть убраны из строки, во имя аллаха.
              Ответить
              • остаться должен только один!

                http://www.youtube.com/watch?v=7BMP-H2ydJk

                не удержался
                Ответить
                • остаться должен только один и локи
                  FTFY
                  Ответить
            • А это зависит от контекста. Если интересно, то нужно посмотреть содержимое invalidChars
              Ответить
              • Вообще, поскольку Replace каждый раз генерит новую строку, было бы правильно использовать скомпилированное регулярное выражение.
                Ответить

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