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

    +110

    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
    public partial class ProductForm : Form
        {
            private delegate bool ProductManipulation();
    
            private static ProductManipulation pmd;
    
            public ProductForm()
            {
                InitializeComponent();
                this.FormClosing += this.ProductForm_Closing;
                ProductsLB.DoubleClick += this.ChangeBtn_Click;
                ProductsLB.Click += this.LoadProductKey;
    
                pmd = LoadDataToLB;
                pmd();
            }
    
    ...
    
            private void AddBtn_Click(object sender, EventArgs e)
            {
                pmd -= LoadDataToLB;
                pmd += AddProduct + pmd;
                pmd += LoadDataToLB;
                pmd(); 
                pmd -= AddProduct;
            }
    
    ...

    Обильное делегирование

    Ekstrem, 13 Января 2012

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

    +131

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Note that async is a contextual keyword. In all syntactic contexts other than the ones above it is considered an identifier. 
    Thus, the following is allowed (though strongly discouraged!):
    
    using async = System.Threading.Tasks.Task;
    …
    async async async(async async) { }

    Из C# Specifications к Visual Studio Async CTP.

    Em1ss1oN, 12 Января 2012

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

    +127

    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
    string res = "";
                try
                {
                    if (org_id == NewId.ToString())
                    {
                        string query = "delete from ARMVZ_CONFIG where org_id = " + org_id;
                         OdbcCommand cmd = new OdbcCommand(query, getConnect());
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = "delete from organisations where id = " + org_id;
                         cmd.ExecuteNonQuery();
                        cmd.CommandText = "delete from services where orgid = " + org_id;
                        cmd.ExecuteNonQuery();
                        NewId = 0;
                         res = "";
                    }
                    else
                    {
                        try
                        {
                            string query = "select * from tmp_organisations where id = " + org_id;
                             OdbcCommand cmd = new OdbcCommand(query, getConnect());
                            DataTable dt = new DataTable();
                            dt.Load(cmd.ExecuteReader());
                            if (dt.Rows.Count > 0)
                             {
                                query = "update organisations set ";
                                foreach (DataColumn col in dt.Columns)
                                {
                                    if (col.ColumnName != "id")
                                     {
                                        query = query + col.ColumnName +
                                                                 " = (select " + col.ColumnName +
                                                                    @" from tmp_organisations where tmp_organisations.id = " + org_id + " ),";
                                     }
                                }
                                query = query.Remove(query.Length - 1);
                                query = query + " where id = " + org_id;
                                 cmd.CommandText = query;
                                dt.Dispose();
                                cmd.ExecuteNonQuery();
    
                            }
                        }
                        catch
                         {
                            //
                        }
                        try
                        {
                            string query = "select * from tmp_armvz_config where org_id = " + org_id;
                             OdbcCommand cmd = new OdbcCommand(query, getConnect());
                            DataTable dt = new DataTable();
                            dt.Load(cmd.ExecuteReader());
                            if (dt.Rows.Count > 0)
                             {
                                query = "update armvz_config set ";
                                foreach (DataColumn col in dt.Columns)
                                {
                                    if (col.ColumnName != "org_id")
                                     {
                                        query = query + col.ColumnName +
                                                                 " = (select " + col.ColumnName +
                                                                    @" from tmp_armvz_config where tmp_armvz_config.org_id = " + org_id + " ),";
                                     }
                                }
                                query = query.Remove(query.Length - 1);
                                query = query + " where org_id = " + org_id;
                                 cmd.CommandText = query;
                                dt.Dispose();
                                cmd.ExecuteNonQuery();
    
                            }
                        }
                        catch
                         {
                            //
                        }

    метод называется "rollback_transaction". весь метод просто не влез

    bercerker, 11 Января 2012

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

    +119

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    static int getCheckNumber(int n)
    {
    return Average(n, 0);                //Сабж
    }
    
    static int Average(int x, int y)   //Функция вычисления среднего арифметического
    {
    return ((x + y) / 2);
    }

    Среднее арифметическое от произвольной переменной и нуля - эквивалентно делению на 2 :)

    vistefan, 09 Января 2012

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

    +118

    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
    private Excel._Application _excel;
    ...
    private void RefreshFormulas(FormulaRefreshOption formulaRefreshOption, object objectToRefresh)
    		{
    			//Где-то в дебрях километрового метода бросилось в глаза
                            ...
    			try
    			{
    				Excel.Range intersection = selection, selection2 = selection;
    				while (selection2 != null)
    				{
    					intersection = _excel.Intersect(selection2, selection2.Dependents,
    						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);
    
    
    					System.Windows.Forms.Application.DoEvents();
    					excelUtilities.RecalculateRangeInstance(true, intersection/*_excel.Selection as Excel.Range*/);
    					selection2 = intersection;
    				}
    
    			}
    			catch (Exception) { /*ignore the exception because .Dependents will throw an exception if there aren't any dependents*/}
                            ...
    		}

    fade, 04 Января 2012

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

    +122

    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
    while (!requestedTermination)
    {
        // ...
        // тут  130 строк кода...
        // ...
    
        if (requestedTermination)
        {
            break;
        }
        else
        {
            // to prevent excess CPU usage
            Thread.Sleep(100);
        }
    }

    requestedTermination - Property, изменяемое другим потоком

    Мораль: не пишите длинные циклы - к концу цикла забудете, какое у него было условие завершения.

    burdakovd, 16 Декабря 2011

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

    +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
    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
    /// <summary>
            /// Abs function
            /// </summary>
            private static object Abs(List<Expression> p)
            {
                return Math.Abs(p[0]);
            }
    
            /// <summary>
            /// Acos function
            /// </summary>
            private static object Acos(List<Expression> p)
            {
                return Math.Acos(p[0]);
            }
    
            /// <summary>
            /// Asin function
            /// </summary>
            private static object Asin(List<Expression> p)
            {
                return Math.Asin(p[0]);
            }
    
            /// <summary>
            /// Atan function
            /// </summary>
            private static object Atan(List<Expression> p)
            {
                return Math.Atan(p[0]);
            }
    
            /// <summary>
            /// Atan2 function
            /// </summary>
            private static object Atan2(List<Expression> p)
            {
                return Math.Atan2(p[0], p[1]);
            }

    Кусок кода от "Капитана Очевидность"

    govnokoder_, 15 Декабря 2011

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

    +146

    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
    public ActionResult RenderDesigner()
    {
        // Get the received text
        var received = string.Empty;
        using(var reader = new StreamReader(Request.InputStream))
        {
            received = reader.ReadToEnd();
        }
    
        // Possible texts received
        var xml = "";
        var id = "";
        var moveId = "";
        int distance = 0;
        
        // Get all string from received
        var keys = received.Split('&');
        for (var i = 0; i < keys.Length; i++)
        {
            // XML
            if(keys[i].StartsWith("xml="))
            {
                xml = Server.UrlDecode(keys[i].Split('=')[1]);
            }
    
            // ID
            else if (keys[i].StartsWith("id="))
            {
                id = keys[i].Split('=')[1];
            }
            // Position
            else if (keys[i].StartsWith("distance="))
            {
                distance = int.Parse(keys[i].Split('=')[1]);
            }
    
            // Move ID
            else if (keys[i].StartsWith("moveId="))
            {
                moveId = keys[i].Split('=')[1];
            }
        }
    }

    разбор параметров POST запроса в стиле MVC

    Eugene, 15 Декабря 2011

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

    +122

    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
    Controller.cs
    
    	public ActionResult SomeAction()
    	{
    		return View("My message");
    	}
    
    SomeAction.cshtml
    
    @{
    	Layout = null;
    }
    @Html.Raw(string.Format("{0}", Model.ToString()))

    Да, это ASP.Net MVC

    medved123, 14 Декабря 2011

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

    +980

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    private string doubleToString(double v)
    {
        if (v < 0)
            return "-" + (-(int)v).ToString() + "." + (-(v - (int)v) * 10000000).ToString("0000000.");
        return ((int)v).ToString() + "." + ((v - (int)v) * 10000000).ToString("0000000.");
    }

    Превращаем double в строку. Разделитель - надо точку, а то "блин, он ставит запятую, SQL-сервер потом это не понимает" (с)

    Meowth, 14 Декабря 2011

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