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

    +105.5

    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
    //одногрупнику надо было проверить, является ли "obj" - "А"
    //наблюдал за процессом, и плакал
    //----------------------------------------------------------------------------------
    //1 версия
    static bool IsA(object obj) {
    if (obj.GetType().Name.Equals("A", StringComparison.InvariantCultureIgnoreCase))
        return true;
        else return false;
    }
    //----------------------------------------------------------------------------------
    //2 версия
    static bool IsA(object obj) {
        A a = new A();
        if (obj.GetType().Equals(a.GetType()))
            return true;
        else return false;
    }
    //----------------------------------------------------------------------------------
    //3 версия
    static bool IsA(object obj) {
        if (obj.GetType().Equals(typeof(A)))
            return true;
        else return false;
    }
    //----------------------------------------------------------------------------------
    //потом он вспомнил, что от "A" могут наследоваться другие классы
    static bool IsA(object obj) {
        Type typeObj = obj.GetType();
        do {
            if (typeObj.Equals(typeof(object)))
                return false;
            else if (typeObj.Equals(typeof(A)))
                return true;
            else typeObj = typeObj.BaseType;
        } while (true);
    }
    
    //плачу, смеюсь и плачу, а с виду одногрупник вроде не Индус...
    //...и весь этот говнокод был написан, вместо простого:
    static bool IsA(object obj) { return obj is A; }

    via xeonix

    striker, 12 Октября 2009

    Комментарии (15)
  2. C# / Говнокод #1955

    +134.4

    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
    private void TestWorksheetFunction() 
    {
      ...
     
      Excel.WorksheetFunction wsf = ThisApplication.WorksheetFunction;
      ws.get_Range("Min", Type.Missing).Value2 = wsf.Min(rng, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing);
      ws.get_Range("Max", Type.Missing).Value2 = wsf.Max(rng, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing);
      ws.get_Range("Median", Type.Missing).Value2 = wsf.Median(rng,
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing);
      ws.get_Range("Average", Type.Missing).Value2 = wsf.Average(rng, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing);
      ws.get_Range("StDev", Type.Missing).Value2 = wsf.StDev(rng, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing);
    }

    Если вы - разработчик на C#, вам придется привыкнуть к обилию значений Type.Missing в вызовах методов. Поскольку объектную модель Excel писали в расчете на VBA, многие ее методы принимают необязательные параметры - иногда до 30. Используйте либо многочисленные экземпляры значения Type.Missing или указывайте для каждого параметра определенное значение по умолчанию.
    (c) http://www.gotdotnet.ru/LearnDotNet/NETFramework/22054.aspx

    zerkms, 12 Октября 2009

    Комментарии (11)
  3. C# / Говнокод #1939

    +950

    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
    public string OperatorName
    {
        get
        {
            if (m_operator == null)
            {
                try
                {
                    int idUser = 1;
                    m_operator = (idUser > 0) ? "Василий" : string.Empty;
                }
                catch
                {
                    m_operator = string.Empty;
                }
            }
            return m_operator;
        }
    }

    Василий решает )))

    tonic, 05 Октября 2009

    Комментарии (5)
  4. C# / Говнокод #1934

    +139.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    var complete = new ManualResetEvent(false);
    
    ThreadPool.QueueUserWorkItem(
    	delegate
    		{
    			service.StartDownloadUpdatesProcess(complete);
    		});
    
    complete.WaitOne();

    Запустим поток, а потом подождем пока он закончиться.

    Mike Chaliy, 04 Октября 2009

    Комментарии (15)
  5. C# / Говнокод #1928

    +137.3

    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
    private ArrayList GetSubscribers(string condition)
            {
               ArrayList subscribers = new ArrayList();
               ArrayList lst =  new user_category_notification().Factory.GetItems(condition, "user_category_notification.id_user");
                ArrayList distinc_lst = new ArrayList();
                ArrayList distinc_lst_ids = new ArrayList();
                ArrayList lst_ids = new ArrayList();
                for (int i = 0; i < lst.Count; i++)
                {
                    lst_ids.Add(((user_category_notification) lst[i]).id_user);
                }
                for (int i = 0; i < lst_ids.Count;i++ )
                {
                    if (distinc_lst_ids.Contains(lst_ids[i])) continue;
                    else
                    {
                        distinc_lst.Add(lst[i]);
                        distinc_lst_ids.Add(lst_ids[i]);
                    }
                }
                foreach (user_category_notification _un in distinc_lst)
                {
                    user _current = (user)new user().Factory.GetByID(_un.id_user);
                    subscribers.Add(_current);
                }
                
                return subscribers;
            }

    Филтрация :)

    bugotrep, 02 Октября 2009

    Комментарии (7)
  6. C# / Говнокод #1907

    +100.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public List<OrderGeneralVWJ> GetAll()
    {
         var q = from og in Context.OrderGeneralVWJs
              select new { 
                   og
              };
         return q.Select(r => r.og).ToList();
    }

    plsc_rover, 28 Сентября 2009

    Комментарии (10)
  7. C# / Говнокод #1903

    +94.5

    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
    /// Из aspx файла
    
    //<asp:Repeater ID="Repeater1" runat="server">
    //    <HeaderTemplate>
    //        <table width="100%" cellspacing="5">
    //    </HeaderTemplate>
    //    <ItemTemplate>
    //        <tr>
    //            <td>
    //                ...
    //            </td>
    //            <asp:Label runat="server" Visible='<%# DataBinder.Eval(Container.DataItem, "visibleCol2") %>'>
    //                <td>
    //                    ...
    //                </td>
    //            </asp:Label>
    //            <asp:Label ID="LCol3" runat="server" Visible='<%# DataBinder.Eval(Container.DataItem, "visibleCol3") %>'>
    //                <td>
    //                    ...
    //                </td>
    //            </asp:Label>
    //        </tr>
    //    </ItemTemplate>
    //    <FooterTemplate>
    //        </table>
    //    </FooterTemplate>
    //</asp:Repeater>
    
    // Из cs файла
    
    DataTable dtres = // получаем товары
    if (dtres != null && dtres.Rows.Count > 0)
    {
        DataTable dt = new DataTable();
    	/*...*/
        
        for (int i=0;i<dtres.Rows.Count;)
        {
            DataRow dr=dtres.Rows[i];
            /*...*/
    
            int col2Index = i + 1;
            if (col2Index < dtres.Rows.Count)
            {
                /*...*/
                i++;
                int col3Index = i + 1;
                if (col3Index < dtres.Rows.Count)
                {
                    /*...*/
                    i++;
                }
                else { /*...*/ }
            }
            else { /*...*/ }
    
            dt.Rows.Add(newRow);
            i++;
        }
    
        /*...*/
    }

    Человеку нужно было сделать товары в сетке 3x6.
    От того что он сделал у меня пропал дар речи. (Чтобы тут очень много кода не бы большую (не нужную для понимания) часть заменил на "...")
    Вобщем, в двух словах, он поместил вторую и третью ячейки таблицы в серверные контролы (причем в Label), а в коде берёт по три товара и засовывает в один RepeaterItem, ну а если количество товаров не делится нацело на три, то в последний RepeaterItem засовываются пустые данные, а Label делается невидимым.
    Как-то так.
    И самое главное, я не знаю, как человеку объяснить, что так нехорошо делать, т.к он главный программист...

    Ordos, 27 Сентября 2009

    Комментарии (9)
  8. C# / Говнокод #1901

    +130.5

    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
    if (!passFlag)
                    {
                        switch (GetTreeNodeName)
                        {
                            case "group":
                                {
                                    if (GetTreeNode.Parent.Parent.Parent.Parent.Name != "StudySchedule")
                                    {
                                        StudentCard studentCard = new StudentCard(ExploreTree.SelectedNode.Text,
                                                                                  ExploreTree.SelectedNode.Parent.Parent.
                                                                                      Text,
                                                                                  ExploreView.SelectedItems[0]);
                                        studentCard.MdiParent = this.MdiParent;
                                        studentCard.Show();
                                        break;
                                    }
                                    else
                                    {
                                        StudySchedule schedule=new StudySchedule(ExploreView.SelectedItems[0], ExploreTree.SelectedNode.Parent.Nodes);
                                        schedule.MdiParent = this.MdiParent;
                                        schedule.Show();
                                        break;
                                    }
                                }

    Это мой говнокод, не знаю как строчку if (GetTreeNode.Parent.Parent.Parent.Parent .Name != "StudySchedule")
    написать по-нормальному)))

    FofanovIS, 26 Сентября 2009

    Комментарии (14)
  9. C# / Говнокод #1895

    +95.6

    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
    try
    {
        foreach (Control con in Parent.Parent.Parent.Parent.Parent.Parent.Controls)
        {
            if (con.Name == "numbersPanel")
            {
                ((NumbersPanel)con).sender = (TextBox)sender;
                break;
            }
        }
    }
    catch
    {
    }

    Отыскал в коде winforms приложения гениальнейший способ поиска контрола по имени.
    Теперь Parent.Parent.Parent.Parent придет за мной!

    tonic, 24 Сентября 2009

    Комментарии (7)
  10. C# / Говнокод #1881

    +128.3

    1. 1
    List<estExecPeriod> lst = TEDManager.getExecPeriodByIDExecWork(budget.IdBudget);

    iley, 22 Сентября 2009

    Комментарии (5)