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

    +137

    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
    public class Problem33 {
        public static void main(String arg[]){
            long l1 = Calendar.getInstance().getTimeInMillis();
            int amount = 0;
            for(int a=1; a<=9; a++){
                for(int b=1; b<=9; b++){
                    for(int c=1; c<=9; c++){
                        for(int d=1; d<=9; d++){
                            int numerator = a*10+b;
                            int denominator = c*10+d;
                            double fraction = 1.0*numerator/denominator;
                            if(numerator < denominator){
                                if(
                                  (a==c && (1.0*b/d == fraction)) ||
                                  (a==d && (1.0*b/c == fraction)) ||
                                  (b==c && (1.0*a/d == fraction)) ||
                                  (b==d && (1.0*a/c == fraction))
                                  ){
                                    amount++;
                                    System.out.println(a + "" +  b + "/" + c + "" + d);
                                 }
                            }
                        }
                    }
                }
            }
            System.out.println(amount);
            long l2 = Calendar.getInstance().getTimeInMillis();
            System.out.println("Time: " + (l2-l1) + "ms");
        }
    }

    http://projecteuler.net/problem=33
    http://projecteuler.net/thread=33

    TheHamstertamer, 24 Июня 2012

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

    +141

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if (value != null)
    {
       bool boolValue = (Boolean)value;
       switch (boolValue)
       {
          case true:
             return true;
          case false:
             return false;
       }
    }

    Конвертер для CheckBox в WPF

    UniXoiD, 21 Июня 2012

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

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private static object Clone(object obj)
    {
    	object newObj = Activator.CreateInstance(obj.GetType());
    	foreach (PropertyInfo pi in obj.GetType().GetProperties())
    		pi.SetValue(newObj, pi.GetValue(obj, null), null);
    	return newObj;
    }

    Потребовалось клонировать объект библиотечного класса со множеством свойств.

    Steve_Brown, 20 Июня 2012

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

    +138

    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 class ImageWorkerSingleton
    {
    	private static ImageWorkerSingleton instance;
    
    	private ImageWorkerSingleton() { }
    
    	public static ImageWorkerSingleton Instance
    	{
    		get
    		{
    			if (instance == null)
    			{
    				instance = new ImageWorkerSingleton();
    			}
    			return instance;
    		}
    	}
    
    	public void Init() {}
    
    	public string UrlToImage(Guid id, ImageTypeEnum imageType = ImageTypeEnum.PhotoUndefined)
    	{
    		...
    	}
    
    	public bool IsImageExist(Guid id, ImageTypeEnum imageType = ImageTypeEnum.PhotoUndefined)
    	{
    		...
    	}
    }

    И на кой, здесь синглтон о_О

    DarkThinker, 20 Июня 2012

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

    +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
    public TOscillPanel getOscillPanel(String nameTable, XmlNodeList parameters, String idCHPU)
            {
                var actions=new Dictionary<string, object>
                                {
                                    {"addParamOscill", new Action<string, string>(addParamOscill)},
                                    {"removeParamOscill", new Action<string, string>(removeParamOscill)},
                                    {"includeRealTimeMode",new Action<string>(includeRealTimeMode)}
                                };
                return (new TOscillPanel(nameTable, parameters, actions));
            }
    
    //...
                              ((Action<String, String>)_actions["addParamOscill"])(_tableChpu, ((TOptionNode)_oscillTreeView.Nodes[0]).getId());
                              ((Action<String, String>)_actions["addParamOscill"])(_tableChpu, idParameters);
    }
    else
    {
                            ((Action<String, String>)_actions["removeParamOscill"])(_tableChpu, ((TOptionNode)_oscillTreeView.Nodes[0]).getId());
                            ((Action<String, String>)_actions["removeParamOscill"])(_tableChpu, idParameters);
    }

    Это практически единственные и основные упоминания в коде контейнера _actions.
    Говорила же мне мама: "возьми динамически типизированный язык", а я её не слушал. Не мне конечно же. Код из очень крупного частного проекта.
    Динамически типизированный язык тут конечно же не нужен. Просто создаем трудности, а потом стоически их решаем.

    Говногость, 19 Июня 2012

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

    +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
    public static DataSet GetSomeDataSet()
    {
        DataSet ds = null;
        object locker = new object();
        lock (locker)
        {
            if (ds == null)
            {
                // тут инициализация ds
    
                return ds;
            }
            else return ds;
        }
    }

    Метод из работающей проги. Возпроизвёл по памяти, но суть именно такая.
    Насколько понимаю, человек хотел результаты работы метода кэшировать в локальную переменную.
    Да ещё и lock на локальную переменную, который никогда не используется.

    Ordos, 19 Июня 2012

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

    +156

    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
    private static BigInteger result = 0;
            static BigInteger F1 = 1;
            static BigInteger F2 = 1;
            static BigInteger provv;
            static BigInteger provv2;
    
            static void Main(string[] args)
            {
                for (BigInteger number = 3; result == 0; number++)
                {
                    provv2 = F2;
                    F2 = F2 + F1;
                    F1 = provv2; ;
                    if (HasProperty(F2.ToString()))
                        result = number;
                }
            }
    
            private static bool HasProperty(string number)
            {
                if (number.Length < 9)
                    return false;
                if (IsPandigital(number.Substring(0, 9)))
                    if (IsPandigital(number.Substring(number.Length - 9, 9)))
                        return true;
                return false;
            }
    
            private static bool IsPandigital(string result)
            {
                int repetitions;
                for (int count = 0; count < 9; count++)
                {
                    repetitions = 0;
                    for (int count2 = 0; count2 < 9; count2++)
                    {
                        if (result.ElementAt(count).ToString() == "0")
                            return false;
                        if (result.ElementAt(count).ToString() == result.ElementAt(count2).ToString())
                        {
                            repetitions++;
                            if (repetitions == 2)
                                return false;
                        }
                    }
                }
                return true;
            }

    http://projecteuler.net/problem=104
    http://projecteuler.net/thread=104;page=6



    >brute force approach,solved aproximately in 24 hours
    >solved aproximately in 24 hours
    >24 hours
    >24
    >hours


    Терпеливый, сука!

    TheHamstertamer, 17 Июня 2012

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

    +137

    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
    [ExposeProperty]
    public bool Exhausted {
    	get {
    		if (this.State > FatigueConsts.globalNormalRange)
    			return true;
    		else
    			return false;
    	}
    	set {
    		if (this.State > FatigueConsts.globalNormalRange)
    			Exhausted = true;
    		else
    			Exhausted = false;
    	}
    }

    И потом полчаса сидел, понимал, почему Юнити зависает, когда я пытаюсь открыть инспектор с этим объектом ) Потом поставил в сеттер return;, ибо для костыля [ExposeProperty] требуются и геттер, и сеттер.

    sulnedinfind, 17 Июня 2012

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

    +139

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public static IEnumerable<T> QuickSort<T>(
    	this IEnumerable<T> source) where T : IComparable<T>
    	{
    		if (!source.Any()) return source;
    		var first = source.First();
    		return source
    			.AsParallel()
    			.GroupBy(i => i.CompareTo(first))
    			.OrderBy(g => g.Key)
    			.SelectMany(g => g.Key == 0 ? g : QuickSort(g));
    	}

    HaskellGovno, 16 Июня 2012

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

    +108

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public sbyte GetSByte(int i)
    {
        IMySqlValue v = GetFieldValue(i, false);
        if (v is MySqlByte)
            return ((MySqlByte)v).Value;
    
        return ((MySqlByte)v).Value;
    }

    Вытащил это "чудо" когда ковырялся в сырцах MySQL .NET Connector-а

    Heisenberg, 13 Июня 2012

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