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

    +135

    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
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    private void button1_Click(object sender, EventArgs e)
            {
                if (comboBox1.Text == "Випадково")
                {
                   LoadMatrixRand(masP, dataGridView1);
                }
    
                if (comboBox1.Text == "Повна")
                {
                    LoadMatrixFull(masP, dataGridView1);
                }
    
                if (comboBox1.Text == "Пуста")
                {
                    LoadMatrixZero(masP, dataGridView1);
                }
    
                if (comboBox1.Text == "Діагональна")
                {
                    LoadMatrixDiagonal(masP, dataGridView1);
                }
    
                if (comboBox1.Text == "Антидіагональна")
                {
                    LoadMatrixAntiDiagonal(masP, dataGridView1);
                }
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                if (comboBox2.Text == "Випадково")
                {
                    LoadMatrixRand(masQ, dataGridView2);
                }
    
                if (comboBox2.Text == "Повна")
                {
                    LoadMatrixFull(masQ, dataGridView2);
                }
    
                if (comboBox2.Text == "Пуста")
                {
                    LoadMatrixZero(masQ, dataGridView2);
                }
    
                if (comboBox2.Text == "Діагональна")
                {
                    LoadMatrixDiagonal(masQ, dataGridView2);
                }
    
                if (comboBox2.Text == "Антидіагональна")
                {
                    LoadMatrixAntiDiagonal(masQ, dataGridView2);
                }
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                if (comboBox3.Text == "Випадково")
                {
                    LoadMatrixRand(masR, dataGridView3);
                }
    
                if (comboBox3.Text == "Повна")
                {
                    LoadMatrixFull(masR, dataGridView3);
                }
    
                if (comboBox3.Text == "Пуста")
                {
                    LoadMatrixZero(masR, dataGridView3);
                }
    
                if (comboBox3.Text == "Діагональна")
                {
                    LoadMatrixDiagonal(masR, dataGridView3);
                }
    
                if (comboBox3.Text == "Антидіагональна")
                {
                    LoadMatrixAntiDiagonal(masR, dataGridView3);
                }
            }

    shitty life as my code

    Запостил: Nutell_a, 19 Сентября 2014

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

    • Зачем это все?
      class Program
      {
      class Test {

      Dictionary<string, Action<object, object>> funcs = new Dictionary<string, Action<object, object>> {
      {"Випадково", new Action<object, object>((parametrs, data) => { Console.WriteLine("Випадково"); })},
      {"Повна", new Action<object, object>((parametrs, data) => { Console.WriteLine("Повна"); })},
      {"Пуста", new Action<object, object>((parametrs, data) => { Console.WriteLine("Пуста"); })},
      {"Діагональна", new Action<object, object>((parametrs, data) => { Console.WriteLine("Діагональна"); })},
      {"Антидіагональна", new Action<object, object>((parametrs, data) => { Console.WriteLine("Антидіагональна"); })}
      };

      public void ExecFunc(string txt, object parametrs = null, object data = null)
      {
      if (this.funcs.Keys.Contains(txt))
      this.funcs[txt].Invoke(parametrs, data);
      }
      }

      static void Main(string[] args)
      {
      Test tt = new Test();

      tt.ExecFunc("Випадково");
      tt.ExecFunc("Повна");
      tt.ExecFunc("Пуста");
      tt.ExecFunc("Діагональна");
      tt.ExecFunc("Антидіагональна");

      Console.ReadKey();
      }
      }

      еще по хорошему можно было бы вместо строковых ключей юзать hash, но врядли это тут прям очень надо
      Ответить
      • Dictionary<string, Action<object, object>> funcs = new Dictionary<string, Action<object, object>> { 
        {"Випадково", new Action<object, object>((parametrs, data) => { Console.WriteLine("Випадково"); })},
        {"Повна", new Action<object, object>((parametrs, data) => { Console.WriteLine("Повна"); })},
        {"Пуста", new Action<object, object>((parametrs, data) => { Console.WriteLine("Пуста"); })},
        {"Діагональна", new Action<object, object>((parametrs, data) => { Console.WriteLine("Діагональна"); })},
        {"Антидіагональна", new Action<object, object>((parametrs, data) => { Console.WriteLine("Антидіагональна"); })}
        };


        //-*)
        Ответить
        • Что Вас смутило, сэр?
          Ответить
          • Холоп, ну ведь пиздец же
            Ответить
            • Может с виду оно и выглядит как динозавр, но по времени, если с Hashtable, выполняется быстро :) по крайней мере быстрее раза в 2, чем со словарем
              Ответить
              • мне было бы лень 5 раз копипастить
                Ответить
                • Да, лучше 15 раз if else копировать, потом менять строку с которой сравнивается текст чекбокса.
                  Ответить
            • И не нужно этих гребаных if else бесконечных или switch'ей. Или ты из "этих"?
              Ответить
              • static List<String> Str = new List<string>() { "Випадково", "Повна", "Пуста", "Діагональна", "Антидіагональна"};
                
                private static Dictionary<string, Action<object, object>> funcs = new Dictionary<string, Action<object, object>>();
                
                static SomeShittyClass()
                        {
                            foreach (var str in Str) AddIn(funcs, str);
                        }
                
                private static void AddIn(Dictionary<string, Action<object, object>> dictionary, string str)
                        {
                            dictionary.Add(str,((parametrs, data) => Console.WriteLine(str)) );
                        }


                свичи - хуичи.
                Ответить
                • "Випадково", "Повна", "Пуста", "Діагональна", "Антидіагональна"
                  Пришлось таки копировать 5 раз. И зачем тут нужна вся эта параметризация?)
                  Ответить
                  • читабельность, изменябельность

                    ты где учишься, китаец?
                    Ответить
                    • нечего возразить @ докопайся до грамматики
                      Ответить
                    • > читабельность
                      cheatable - обманываемый
                      Ответить
                    • Я всего лишь показал способ, при котором нет необходимости миллион if писать, не претендовал на большее. Хочешь реализовать CRUD для это коллекции, пожалуйста, я этого и не пытался делать. Оскорблять то зачем? Для пущей весомости своих аргументов в следующий раз сразу пиши "мамку ебал".
                      Ответить
                      • оскорблял? ты знаешь что такое китайский код?
                        Ответить
                        • Он чем то похож на индусский. Смысл тебе было писать что параметризация это то чего тут явно не хватает, когда мой пример был направлен на борьбу с if else ?
                          Ответить
    • void LoadMatrix(masR, dataGridView3, type)
      {
      Types.Where(_ => _.name == type).Select(t => t.LoadMatrix(masR, dataGridView3));
      }
      Ответить
    • Повна гоели.
      Ответить

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