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

    +124

    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
    public object Data 
                {
                    get
                    {
                        return this._data;
                    }
                    set
                    {
                        (((value is byte ||
                           value is short ||
                           value is ushort ||
                           value is int ||
                           value is uint ||
                           value is long ||
                           value is ulong ||
                           value is decimal ||
                           value is double ||
                           value is float) && (DataType == JsonNodeDataType.Number)) ||
                         ((value is string) && (DataType == JsonNodeDataType.String)) ||
                         ((value is object[]) && (DataType == JsonNodeDataType.Array)) ||
                         ((value is Json) && (DataType == JsonNodeDataType.SubObject)) ||
                         ((value is bool) && (DataType == JsonNodeDataType.Boolean))).Assert();
                        this._data = value;
                    }
                }

    Изобретаю велосипед для работы с Json

    Запостил: psina-from-ua, 20 Сентября 2011

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

    • А в шарпе нет оператора in?
      сисярпнезнаю
      Ответить
      • Из коробки нету, но можно замутить такой велосипед:
        public static bool In<T>(this IEnumerable<T> en, T arg)
        {
          foreach (var e in en) if (e.Equals(arg)) return true;
          return false;
        }
        Ответить
        • знаю, что код схематический,
          но как и положено велосипеду, он упадет на первом же nulle
          Ответить
        • en.Any(e => e == arg);
          Ответить
    • Плохо то, что код для отладки пишете прямо в том же коде, который используете в релизе (я так понимаю, что нежелание заморачиваться с отдельными функциями / создаванием структур для отдельных проверок именно изза этого). Если бы для тестов отнаследовались от этого класса, переопределили свойство - там уже можно было бы и красивше сделать, и, главное, выбрасывать перед коммитом не надо, и снова добавлять после апдейта. Т.е. жаль потратить чуть-чуть времени на создание дополнительного класса, и при этом тратится куча времени на выполнение повторяющихся операций, кроме того, еще и неудобных.
      Ответить
      • Если не сложно, не могли бы Вы по-подробней рассказать про классы и структуры
        Ответить
        • Я имел в виду структуры в "общечеловеческом" смысле :) не struct или что-то такое. А, например, можно было сделать Type[] и в нем искать, как-то так:
          if (JsonTypes.IndexOf(value.GetType()) > -1) { ... }
          Ответить
    • Можно бы массив из System.Type замутить
      Ответить
      • Да-да, я тоже это имел в виду, ну или словарь с типами/делегатами, делегат соответствует проверке, которую нужно сделать дополнительно, если просто типа недостаточно.
        Ответить
    • показать все, что скрытоШарпоблядки не могут в комбинаторный парсинг.
      Ответить
      • Съеби туда, откуда пришел.
        Код, в целом, нормальный.
        В сырцах либ для работы с json и не такое можно повидать.
        Ответить

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