1. Список говнокодов пользователя tubus

    Всего: 2

  2. C# / Говнокод #5681

    +116

    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
    public static class ControlManager
        {
            public static UIElement GetControlByName(UIElement control, string name)
            {
                if (EntityType.GetValue(control, "Name").Equals(name))
                    return control;
                if (EntityType.IsProperty(control, "Children"))
                {
                    foreach (var element in (UIElementCollection)EntityType.GetValue(control, "Children"))
                    {
                        if (EntityType.GetValue(element, "Name").Equals(name))
                            return element;
                        var temp = GetControlByName(element, name);
                        if (temp != null)
                            return temp;
                    }
                }
                if (EntityType.IsProperty(control, "Child"))
                {
                    var element = (UIElement)EntityType.GetValue(control, "Child");
                    if (EntityType.GetValue(element, "Name").Equals(name))
                        return element;
                    var temp = GetControlByName(element, name);
                    if (temp != null)
                        return temp;
                }
                if (EntityType.IsProperty(control, "SelectionElement"))
                {
                    var element = (UIElement)EntityType.GetValue(control, "SelectionElement");
                    if (EntityType.GetValue(element, "Name").Equals(name))
                        return element;
                    var temp = GetControlByName(element, name);
                    if (temp != null)
                        return temp;
                }
                return null;
            }
    
            public static UIElement GetControlByType(UIElement control, Type type)
            {
                if (control.GetType() == type)
                    return control; 
                if (EntityType.IsProperty(control, "Children"))
                {
                    foreach (var element in (UIElementCollection)EntityType.GetValue(control, "Children"))
                    {
                        if (element.GetType() == type)
                            return element;
                        var temp = GetControlByType(element, type);
                        if (temp != null)
                            return temp;
                    }
                }
                if (EntityType.IsProperty(control, "Child"))
                {
                    var element = (UIElement)EntityType.GetValue(control, "Child");
                    if (element.GetType() == type)
                        return element;
                    var temp = GetControlByType(element, type);
                    if (temp != null)
                        return temp;
                }
                if (EntityType.IsProperty(control, "SelectionElement"))
                {
                    var element = (UIElement)EntityType.GetValue(control, "SelectionElement");
                    if (element.GetType() == type)
                        return element;
                    var temp = GetControlByType(element, type);
                    if (temp != null)
                        return temp;
                }
                return null;
            }
        }

    Автор тот же.
    Этот код пошатнул мою психику. А может так и надо. а?
    всё-таки stringly-static programming....

    tubus, 15 Февраля 2011

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

    +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
    Как вам вот такой вот класс...
    
    public static class TypeFromString
        {
            public static Type FindTypeFromString(string s)
            {
                Assembly mainAssembly = Assembly.GetExecutingAssembly();
                return Type.GetType(s);
            }
        }
    
    ... и его использование.
    TypeFromString.FindTypeFromString(typeof (...).ToString())

    сверхконцептуально!

    tubus, 17 Января 2011

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