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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public static string CreateBrowserCacheExtension(object key)
    {
        //...Остальной код опущен для ясности
        return "Cache=" + Math.Abs(key.GetHashCode());
    }

    Legacy code из проекта над которым я работаю.
    Косяк в том, что GetHashCode() иногда возвращает значение, равное System.Int32.MinValue.
    А это в свою очередь приводит к OverflowException, в случае с Math.Abs(...);

    pikowatt, 14 Февраля 2014

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

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Random random = new Random(Environment.TickCount);
    for (int i = 0; i < random.Next(380, 480); i++)
    {
            Marshal.AllocHGlobal(random.Next(0x4400, 0xd400));
            Thread.Sleep(1);
    }

    Из исходников подрядчика...
    Заказчиков надо садить на иглу правильно

    Stewie, 14 Февраля 2014

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

    +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
    if (currentItem.Type.ActiveProperty != null)
    {
    	Type controltype = currentControl.GetType();
    	PropertyInfo pinfo = controltype.GetProperty(currentItem.Type.ActiveProperty.Name);
    
    	bool enabledtrue = (currentItem.Type.ActiveProperty.Name.ToLower() != "readonly");
    
    
    	if ((r1 != 2) || _page.ReadOnly)
    		enabledtrue = !enabledtrue;
    
    	pinfo.SetValue(currentControl, enabledtrue, null);
    }

    enabledtrue как пример интуитивно-понятного названия переменной

    Gocoder, 14 Февраля 2014

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

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    string dirUp = striBuildDir + striBinaryDir + "\\" + striTempDir + "\\";
     string dirRelease = strDirBin;
     int i = 1;
     while (ConfigurationSettings.AppSettings["SettingDir" + i] != null)
      {

    и еще строк 100500 такого же стиля

    taburetka, 12 Февраля 2014

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

    +133

    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
    for (int idx = 0; idx < response.Length; ++idx)
    {
        try
        {
            if (getDetails(username, password, summaryList[idx].summaryId).productId[0].id != productId)
            {
            }
        }
        catch (NullReferenceException)
        {
        }
        catch (System.ArgumentException)
        {
            response[idx] = new DetailInfo();
        }
    }

    Если вы меня понимаете, .

    wissenstein, 11 Февраля 2014

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

    +131

    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
    #region GetObjectTree
        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public RootNode getObjectTree() {
            using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DSDPortal"].ConnectionString)) {
                using (SqlCommand cmd = new SqlCommand("Report.ObjectTree_Read", conn))
                using (SqlDataAdapter sda = new SqlDataAdapter(cmd)) {
                    cmd.CommandType = CommandType.StoredProcedure;
                    DataTable dt = new DataTable();
                    conn.Open();
                    sda.Fill(dt);
    
                    var RootObjects = (from row
                                     in dt.AsEnumerable()
                                       where row.Field<int>("IsAttribute") == 0 && (row.Field<string>("FullName").Split('.').Count() == 1 || !row.Field<string>("FullName").Contains('.'))
                                       select new { Desc = row["Description"].ToString(), FullName = row.Field<string>("FullName"), Type = row.Field<string>("DataType") }).AsEnumerable();
    
                    RootNode rt = new RootNode();
                    foreach (var obj in RootObjects) {
                        TreeNode o = new TreeNode();
                        o.data.title = obj.Desc;
                        o.attr.Name = obj.FullName;
                        o.attr.Type = obj.Type;
                        o.children.AddRange(getChildTreeNode(dt, obj.FullName));
                        rt.data.Add(o);
                    }
                    return rt;
                }
            }
        }
    
        private List<TreeNode> getChildTreeNode(DataTable dt, string contextName) {
            var nodes = from row
                        in dt.AsEnumerable()
                        where row.Field<string>("FullName") != contextName
                            && row.Field<string>("FullName").StartsWith(contextName)
                            && (contextName).Split('.').Count() + 1 == row.Field<string>("FullName").Split('.').Count()
    
                        select new {
                            Desc = row["Description"].ToString(),
                            FullName = row["FullName"].ToString(),
                            Type = row["DataType"].ToString()
                        };
            List<TreeNode> items = new List<TreeNode>();
            foreach (var o in nodes) {
                TreeNode ob = new TreeNode();
                ob.data.title = o.Desc;
                ob.attr.Name = o.FullName;
                ob.attr.Type = o.Type;
                ob.children.AddRange(getChildTreeNode(dt, ob.attr.Name));
                if (ob.children.Count == 0) {
                    ob.children = null;
                }
                items.Add(ob);
            }
            return items;
    
        }
        #endregion

    и весь этот фарш, только чтобы распарсить строки типа PARENT_OBJECT.OBJECT.CHILD_OBJECT.ATTRIB UTE, и показать их в виде дерева, вместо того, чтобы сразу хранить иерархию по человечески :(

    Lokich, 11 Февраля 2014

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

    +137

    1. 1
    System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(249)))), ((int)(((byte)(249)))));

    taburetka, 07 Февраля 2014

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

    +132

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    var yetUsed = new HashSet<int>(startFrom ?? new int[] { })
    /*..............................................................................................................................*/
    foreach (var ind in Enumerable.Range(0, proxy.Size).Where(yetUsed.Contains))
         {
         proxy.SetIndexes(yetUsed.Where(x=>x!= ind).OrderBy(x => x).ToArray());
                               /* ............................................................................*/
         }
    /*.......................................................................................................................*/

    Из разряда
    int i = 3;
    "3" == i.ToString();

    andrewiv, 07 Февраля 2014

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

    +105

    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
    //Невероятные приключения Microsoft'а в Индии:
    
            private string ExtractHttpVerb(XmlDocument configDOM)
            {
                string httpVerb;
    
                string hv = IfExistsExtract(configDOM, "/Config/method", "2");
    
                switch (hv)
                {
                    case "0":
                        httpVerb = HttpVerbs[0];
                        break;
    
                    case "1":
                        httpVerb = HttpVerbs[1];
                        break;
    
                    case "2":
                        httpVerb = HttpVerbs[2];
                        break;
    
                    default:
                        httpVerb = HttpVerbs[2];
                        break;
                }
    
                return httpVerb;
            }

    HellMaster_HaiL, 05 Февраля 2014

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

    +123

    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
    private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
            {
                if (!Char.IsDigit(e.KeyChar) && !(Char.IsControl(e.KeyChar)))
                {
                    if (!((e.KeyChar.ToString() == ",") && (textBox1.Text.IndexOf(",") == -1)))
                        e.Handled = true;
                }
    
            }
    
            private void textBox2_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
            {
                if (!Char.IsDigit(e.KeyChar) && !(Char.IsControl(e.KeyChar)))
                {
                    if (!((e.KeyChar.ToString() == ",") && (textBox2.Text.IndexOf(",") == -1)))
                        e.Handled = true;
                }
            }

    Увидел у соседа по комнате книжку на полке '"C# в задачах и примерах"

    открываю, а там это

    первая надпись в книге - Процесс создания программы состоит из 2 шагов - создание формы и создания функций обработки.

    ООАиП, иди ты нахуй!

    kegdan, 30 Января 2014

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