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

    +136

    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
    // Определить тип ОС
       string OSVersion = null;
       try
       {
        try
        {
         OSVersion = Microsoft.Win32.Registry.GetValue(@"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\", "ProductName", "").ToString();
        }
    
        catch (NullReferenceException)
        {
        OSVersion = "";
        }
       }
       
       catch (SecurityException)
       {
        OSVersion = "";
       }
    
       finally {} // иначе при вложенном try ошибка

    Говницо собственного производства, когда учился программировать на первой работе.

    Smekalisty, 27 Мая 2014

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

    +135

    1. 1
    2. 2
    3. 3
    var methods = from mi in typeof(T).GetMethods()
    	  where !mi.IsAbstract && mi.Name == methodName
    	  select mi;

    LINQ over Reflection

    kostoprav, 21 Мая 2014

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

    +134

    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
    // Как вы думаете какой вариант кода более правильный?
    using System;
    using System.Linq;
    public class Program {
        public static int Puzzle(string s) {
            return s.Where(x=>x=='a').Count();
        }
    }
    // Или вот этот?
    using System;
    using System.Linq;
    public class Program {
        public static int Puzzle(string s) {
            return s.Count(x=>x=='a');
        }
    }
    //С точки зрения Майкрософт 1-ый вариант лучше

    Майкрософт запустила игру головоломку, каждая из головоломок решается определнным кодом. После - элегантность решения оценивается, весьма неоднозначным способом.
    Подробнее - https://www.codehunt.com/ и статейка на хабре http://habrahabr.ru/post/223173/ . Данная особенность замечена не мной, задачи 2.06 и 2.07

    Zuzik, 18 Мая 2014

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

    +132

    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
    public void Check()
    {
    	try
    	{
    		this.Function = "check";
    		this.Params = HttpUtility.UrlEncode((this.Params), Encoding.GetEncoding(1251));
    
    		if ((this.Function.Length > 0) &&
    			(this.PaymExtId.Length > 0) &&
    			(this.PaymSubjTp.ToString().Length > 0) &&
    			(this.Amount.ToString().Length > 0) &&
    			(this.Params.Length > 0) &&
    			(this.TermType.Length > 0) &&
    			(this.TermId.Length > 0) &&
    			(this.FeeSum.ToString().Length > 0))
    		{
    			this.Request = string.Format("function={0}&PaymExtId={1}&PaymSubjTp={2}&Amount={3}&Params={4}&TermType={5}&TermID={6}&FeeSum={7}",
    										 this.Function, this.PaymExtId, this.PaymSubjTp.ToString(), this.Amount.ToString(), this.Params, this.TermType, this.TermId, this.FeeSum.ToString());
    			SendRequest();
    		}
    		else
    		{
    			GetError("-1");
    		}                
    	}
    	catch
    	{
    		GetError("-9");
    	}
    }

    Оттуда же. Тип полей PaymSubjTp, Amount, FeeSum - int, всех остальных - string.
    Amount.ToString().Length > 0 и т.п. всегда true, а вот ноль или отрицательное значение спокойно пропустят.
    Интересно, разработчики хоть знают, что функции умеют принимать и возвращать данные? :)

    yamamoto, 18 Мая 2014

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

    +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
    private void SendRequest()
    {
    	try
    	{
    		HttpWebRequest HTTPRequest;
    
    		try
    		{                    
    			HTTPRequest = (HttpWebRequest)WebRequest.Create(this.Host + this.Request);
    			HTTPRequest.ClientCertificates.Add(this.certificate);                    
    		}
    		catch
    		{
    			throw new Exception("-2");
    		}
    
    		try
    		{
    			HttpWebResponse response = (HttpWebResponse)HTTPRequest.GetResponse();
    			Stream stream = response.GetResponseStream();
    			TextReader xml = new StreamReader(stream, Encoding.GetEncoding(1251));
    
    			this.Response = xml.ReadToEnd();
    			stream.Close();
    			response.Close();
    		}
    		catch
    		{
    			throw new Exception("-3");
    		}
    
    		GetError("0");
    	}
    	catch (Exception ex)
    	{
    		GetError(ex.Message);
    		this.Response = "ОШИБКА!";
    	}
    }

    Оттуда же. Круговорот исключений в природе.

    yamamoto, 17 Мая 2014

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

    +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
    public void ExtIdGen()
    {
    	try
    	{
    		Random rnd = new Random();
    		string uin = "";
    		for (int i = 0; i < 20; i++)
    		{
    			uin += rnd.Next(10).ToString();
    		}
    
    		this.ExtId = uin;
    
    		GetError("0");
    	}
    	catch
    	{
    		GetError("-6");
    	}
    }
    
    private void GetError(string error_code)
    {
                switch (error_code)
                {
                    case "0":
                        this.LastErrorCode = 0;
                        this.LastErrorDescription = "Нет ошибок";
                        break;
    		// -1 .. -5
                    case "-6":
                        this.LastErrorCode = -6;
                        this.LastErrorDescription = "Ошибка при получении идентификатора запроса";
                        break;
                }
    }

    LastErrorCode, LastErrorDescription, ExtId - public поля.
    Там весь класс написан в таком стиле, с вызовами GetError, принимающими номер ошибки в виде строки, молчаливым catch-ем всех исключений и т.п.

    yamamoto, 17 Мая 2014

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

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    private byte Summ(byte a, byte b, byte p)
            {
    
                return Or(Or(Or(And(p, Not(a)), And(p, Not(b))), Or(And(b, Not(a)), And(b, Not(a))))Or(And(a, Not(b)),And(a, Not(p))), ()) ;//тут я и сломался 
             
            }

    Shadowy1, 17 Мая 2014

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

    +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
    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
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    namespace Рунге_Кутты_1._4
    {
        public partial class Form1 : Form
        {
            double x0 = 1, y0 = 2, z0 = 4, t0 = 0, T = 1, h = 0.001, Eps = 0.000001, fx, fy, fz, xx, yy, zz, Ex, Ey, Ez, Eps1;
            double[] x = new double[4]; double[] y = new double[4]; double[] z = new double[4];
            double[] Kx = new double[4]; double[] Ky = new double[4]; double[] Kz = new double[4];
            bool a;
            public void Calculates()
            {
                System.IO.File.Delete(@"C:\Results\results.dat");
                x[0] = x0; y[0] = y0; z[0] = z0;
                while (t0 <= T)
                {
                    for (int i = 0; i <= 3; i++)
                    {
                        fx = -y[i] - z[i];
                        fy = x[i] + 0.2 * y[i];
                        fz = 0.2 + (x[i] - 5.7) * z[i];
                        Kx[i] = h * fx;
                        Ky[i] = h * fy;
                        Kz[i] = h * fz;
                        x[1] = x[0] + 0.5 * Kx[0];
                        x[2] = x[0] + 0.5 * Kx[1];
                        x[3] = x[0] + Kx[2];
                        y[1] = y[0] + 0.5 * Ky[0];
                        y[2] = y[0] + 0.5 * Ky[1];
                        y[3] = y[0] + Ky[2];
                        z[1] = z[0] + 0.5 * Kz[0];
                        z[2] = z[0] + 0.5 * Kz[1];
                        z[3] = z[0] + Kz[2];
                    }
                    Ex = Math.Abs(2 * (Kx[0] - Kx[1] - Kx[2] + Kx[3]) / 3);
                    Ey = Math.Abs(2 * (Ky[0] - Ky[1] - Ky[2] + Ky[3]) / 3);
                    Ez = Math.Abs(2 * (Kz[0] - Kz[1] - Kz[2] + Kz[3]) / 3);
                    Eps1 = Eps / 8;
                    a = Check();
                    if (a == false)
                    {
                        xx = x[0] + (Kx[0] + 2 * Kx[1] + 2 * Kx[2] + Kx[3]) / 6;
                        yy = y[0] + (Ky[0] + 2 * Ky[1] + 2 * Ky[2] + Ky[3]) / 6;
                        zz = z[0] + (Kz[0] + 2 * Kz[1] + 2 * Kz[2] + Kz[3]) / 6;
                        x[0] = xx;
                        y[0] = yy;
                        z[0] = zz;
                        t0 += h;
                        string f1 = Convert.ToString(xx);
                        string f2 = Convert.ToString(yy);
                        string f3 = Convert.ToString(zz);
                        string[] f = new string[] { f1, f2, f3 };
                        string path = @"C:\Results\results.dat";
                        string appendtext = xx + " " + yy + " " + zz + Environment.NewLine;
                        System.IO.File.AppendAllText(path, appendtext);
                    }
                }
            }
            public bool Check()
            {
                bool a;
                if (Ex > Eps | Ey > Eps | Ez > Eps)
                {
                    a = true;
                    h /= 2;
                    Calculates();
                }
                else a = false;
                return a;
            }
            public Form1()
            {
                InitializeComponent();
                Calculates();
                DrawGraph();
            }
            public void DrawGraph()
            {
                    GraphPane pane = zedGraph.GraphPane;
                    pane.CurveList.Clear();
                    PointPairList list = new PointPairList();
                    for (t0 = 0; t0 <= T; t0 += h)
                    {
                        list.Add(t0, x[0]);
                    }
                    LineItem MyCurve = pane.AddCurve("x(t)", list, Color.Blue, SymbolType.None);
                    zedGraph.AxisChange();
                    zedGraph.Invalidate();
            }
        }
    }

    пытаюсь вывести решения в виде графика. выводится только последнее решение из цикла

    mr07th, 16 Мая 2014

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

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    try
    {
        int.TryParse(splitString[j], out I[i, j]);
    }
    catch (Exception)
    {
        Console.WriteLine("...");
        break;
    }

    sys2712, 13 Мая 2014

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

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public static string CapitalizeFirstLetter(this string s)
    {
        if (String.IsNullOrEmpty(s))
            throw new ArgumentException("Stirng is empty");
        return s.First().ToString().ToUpper() + String.Join("", s.Skip(1));
    }

    не ищем легких путей

    baks, 07 Мая 2014

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