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

    +133.1

    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
    16. 16
    17. 17
    /// <summary>
    /// General handler for all buttons
    /// </summary>
    private void FormButtons_Click(object sender, EventArgs e)
    {
        Control control = (Control) sender;
    
        if (control.Handle == btnCreateInvoices.Handle)
            ExportOrders();
        else if (control.Handle == btnFirstUsageInvoices.Handle)
            ExportFirstUsageInvoices();
        else if (control.Handle == btnImportCustomers.Handle)
            ImportCustomers();
        else if (control.Handle == btnImportProdcuts.Handle)
            ImportProducts();
        else if // и так далее...
    }

    WinForms приложение, на все кнопки навешен 1 обработчик события OnClick.
    А внутри вот....

    Запостил: vleschenko, 12 Августа 2009

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

    • Не вижу говнокода. разве что сравнивание по хэндлам - это лишнее...
      Ответить
    • хы опять if / elseif. нет бы свитч
      Ответить
      • в свитч нельзя вставлять неконстанты, учите матчасть!
        Ответить
        • я то матчасть знаю)
          switch (control.Name)
          {
          case "btnCreateInvoices":
          {
          ExportOrders();
          break;
          }
          default:
          break;
          }
          Так сделать религия не позволяет?
          Ответить
          • это больше смахивает на говно год, а Вам if / elseif использовать религия не позволяет? ;)
            Ответить
          • любитель стрингов? это говнокод ++
            Ответить
          • А если изменю название кнопки в дизайнере? в ваш говнохэндлер тоже придется лезть и править...
            Ответить
            • и так и так придется
              Ответить
              • в данном примере - не придется. а со строками - придется.
                Ответить
          • бля пиздец сами говнокодят хуже всех индусов вместе взятых но пиздят какие они блять супер кодеры повсеместно

            case ваще говно лучше его никогда не юзать.
            Ответить
    • Гы, а так почему нельзя?
      Control control = (Control) sender;
      switch (control)
      {
      case btnCreateInvoices:
      ExportOrders();
      break;
      ...
      Ответить
    • А все же сделать отдельные обработчики не судьба?
      Ответить
      • Если в них будет по одной строчке как в примере - то это имхо ещё больший говнокод
        Ответить
        • Пример уж точно не образец для подражания
          Ответить
        • Почему по одной строчке? Там в каждом if вызывается метод. Возможно, код этого метода переедет сразу в обработчик.
          Ответить
    • Отдельные обработчики - стандартный подход Windows Forms.
      А switch/elseif - пережиток оконных процедур winapi
      Ответить
      • Стандартный подход - неверно сказано, скорее подход IDE, предназначенный как раз для быдлокодеров, которым лень код писать.
        Ответить
    • автор кода наверное любит бейсик с его контрол арреями))))
      Ответить
    • Человеки, вообще-то для этих целей надо было создавать разные обработчики событий, а не собирать все в кучу.
      Ответить
    • Ну видимо задалбало человека по всем эти обработчикам туда-сюда скролить, вот он и впихнул всё в одну функцию. Плюс можно контролы делать копи-пасте.
      Ответить
    • ваще мысль интересная надо попробовать так пописать ради експеримента.

      все блять тока пиздять что плохо плохо плохо хоть ктоб сказал почему?
      Ответить
    • разное событие для каждой кнопки и не нужна функция сразу.
      Ответить

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