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

    +129

    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
    [System.Runtime.Serialization.DataMember(Name = "o")]
            public OnlineOperator[] AvailableOperators
            {
                get
                {
                    List<OnlineOperator> o = new List<OnlineOperator>();
    
                    if (this.AllOperators != null)
                    {
                        Boolean flag = false;
                        List<OnlineOperator> o2 = new List<OnlineOperator>();
    
                        foreach (OnlineOperator oo in this.AllOperators)
                        {
                            if (oo.Status != OperatorStatus.Offline)
                            {
                                if (oo.Priority == 0)
                                {
                                    if (oo.Status == OperatorStatus.Online)
                                    {
                                        flag = true;
                                    }
                                    o.Add(oo);
                                }
    
                                if (!flag)
                                {
                                    o2.Add(oo);
                                }
                            }
                        }
    
                        if (!flag)
                        {
                            o = o2;
                        }
                    }
    
                    //if (o.Count < 1)
                    {
                        o.Add(new OnlineOperator()
                        {
                            Id = 0,
                            UserDisplayName = String.Format(Resources.pattern_offline, this.OfflineNote),
                            Status = OperatorStatus.None
                        });
                    }
    
                    return o.ToArray();
                }
                set
                {
                    ;
                }
            }

    Логика конечно странновато реализована, но реализация ReadOnly свойства меня просто убила

    Запостил: dens, 13 Марта 2014

    Комментарии (3) RSS

    • Баян же, было совсем недавно
      Ответить
    • А меня о, о2, оо, 0 убили раньше чем я добрался до пустого set)) Смеялсо...
      Ответить
    • но реализация ReadOnly свойства меня просто убила
      Судя по атрибуту DataMember это может использоваться где-нить в WCF, а DataContractSerializer, используемый в WCF'е, обязательно требует сеттера. Так что, да, приходится костылить такие конструкции. Для красоты можно писать так:
      private set {}
      Ответить

    Добавить комментарий