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

    +116

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
            {
                label5.Text = Convert.ToInt32(e.X.ToString()).ToString();
                label6.Text = Convert.ToInt32(e.Y.ToString()).ToString();
                label1.Location = new Point(e.X, e.Y);
            }

    Не знаю лаба это или нет, но взято это с www.cyberforum.ru

    psina-from-ua, 07 Января 2011

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

    +126

    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
    if (_documentsCount < 0)
                {
                    var docs = new HashSet<int>();
    
                    _manager.WalkThroughConcepts(delegate(Concept concept, CancelEventArgs cargs)
                                                     {
                                                         foreach (var doc in concept.Documents)
                                                             docs.Add(doc);
                                                     });
    
                    _documentsCount = docs.Count;
                }
    
                return _documentsCount;

    Как сосчитать количество документов в дереве? очень просто - надо всех их добавить в один список (и для этого сделать цикл в каждом узле, разумеется) а потом вернуть количество элементов в списке.

    eval_2009, 06 Января 2011

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

    +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
    public delegate IEnumerable<int> ProcessStrategy();
    
            public class ProcessEventArgs: EventArgs
            {
                public ProcessStrategy { get; set; }
            }
    
            public IEnumerable<int> GetSelectedDocuments()
            {
                var args = new ProcessEventArgs();
    
                if (args.Strategy == null)
                {
                    args.Strategy = delegate()
                                        {
                                            var result = new HashSet<int>();
                                            WalkThrough(
                                                delegate(ConceptInfo concept, CancelEventArgs cargs)
                                                {
                                                    foreach (var doc in concept.Documents)
                                                        result.Add(doc);
                                                }, State.Selected);
                                            return result;
                                        };
                }
    
                return args.Strategy();
            }

    Обьявляем делегат, потом обьявляем класс от EventArgs в котором (в EventArgs!) будет передаваться этот самый делегат.
    Потом в нужном методе создаем экземпляр класса ProcessEventArgs, проверяем делегат на null - откуда он берется не null в только что созданном непонятно, но помним про прикол с Manager singleton того же автора :), присваеваем его делегату собственно код который и совершает необходимые операции, а потом....
    Потом просто вызываем свежесозданый делегат.

    eval_2009, 06 Января 2011

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

    +108

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private void Form_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Escape)
                {
                    btnCancel_Click(sender, EventArgs.Empty);
                }
            }

    Форма - модальный диалог, Cancel кнопка обычная - никаких причин просто выставить у нее DialogResult в Cancel не было. Но ведь так нагляднее!

    eval_2009, 05 Января 2011

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

    +117

    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
    #region methods
    
    private bool _updatingState;
    
    public class ProcessArgs : EventArgs
    {
    }
    
    internal event EventHandler<ProcessArgs> OnBeforeProcess;
    
    public abstract void Process(IEnumerable<DataSource> data);
    
    // Тут еще много всего, на удивление есть и методы
    
    #endregion
    
    #region properties
           private readonly IList<IResult> _results = new List<IResult>(100);
            private void buildResultsList()
            {
               //код
            }
       // ну и немного свойств
    #endregion
    
    #region events
      public delegate IEnumerable<int> Strategy();
    
            public class StrategyEventArgs : EventArgs
            {
                public Strategy Strategy { get; set; }
            }
            public event EventHandler OnResultsLoading;
    
            private void raiseOnResultsLoading() 
           {
              foreach (EventHandler handler in OnResultsLoading.GetInvocationList())
                          handler(this, EventArgs.Empty);
           }
    #endregion
    
    #region members
    // пусто - все мемберы сидят по другим region
    #endregion

    За что я не люблю regions, особенно у говнокодеров. Зато если просто открыть файлик то выглядит все замечательно, чисто и аккуратно.

    eval_2009, 05 Января 2011

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

    +112

    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
    public static class EntryPoint
        {
            private class NotFoundException : ApplicationException
            {
                public FoundException(int id, SourceType type)
    
                private SourceType Type { get; set; }
                private int Id { get; set; }
            }
    
          private class InProgressException : ApplicationException
            {
                public InProgressException(int id, SourceType type)
                {
                    Type = type;
                    Id = id;
                }
    
                private UserViewSourceType Type { get; set; }
                private int Id { get; set; }
            }
    
         public static void Analyze(SourceType type, IEnumerable<int> dataId)
            {
                try
                {
                    initialize(type, dataId);
                }
                catch (InProgressException)
                {  
    // немного говнокода
                }
                catch (NotFoundException)
                {
    // немного говнокода
                }
    }

    Для того что бы внутри статического класса между двумя процедурами наладить связь (Analyze - initilize) человек определил два новых типа exceptions (private) и дал им дополнительные свойства которые нигде не используются. Exceptions эти больше нигде кроме initialize не кидаются и нигде кроме Analyze не ловятся. Ну и initialize больше ниоткуда кроме Analyze не вызывается.
    В итоге имеем два лишних класса и тучу кода который можно без помех удалить, чем я собственно и занимаюсь :)

    eval_2009, 05 Января 2011

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

    +121

    1. 1
    2. 2
    if (_flag_visible == true) obj.SetVisible();
    else if (_flag_visible == false) obj.SetInvisible();

    Crazzy, 05 Января 2011

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

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    static void Initialize()
            {
                if (Manager.Current == null)
                {
                    new Manager();
                }
            }

    человек изобрел новый тип singleton, instance которого выставляется при вызове конструктора его типа. Если вызвать два раза - второй перекроет первый. Тип public, конструктор тоже public

    eval_2009, 05 Января 2011

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

    +125

    1. 1
    m_PRICEURL = m_PRICEURL.Replace("{0}", "2010");

    Новый Год принёс не только подарки, но и коллекцию говнокода вроде такого

    Shokker, 03 Января 2011

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

    +129

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Exception Myex;
                    int responseVal = HelperMethods.DoPost(url, postdata, "text/xml; charset=utf-8", ref xmlResponse, null, out Myex);
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.Load(new StringReader(xmlResponse));
    
                    string StatusID = xmlDoc.ChildNodes[1].ChildNodes[0].FirstChild.Value;
                    if (StatusID.ToLower() != "0")

    Последняя строка не может не радовать. Никогда не знаешь каким большим может быть ноль ...

    Othello, 03 Января 2011

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