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

    −11

    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 object GetUISetting(string path)
    {
        List<string> splittedPath = path.Split('/').ToList();
        string keyName = string.Empty;
    
        foreach (string pathItem in splittedPath)
        {
            if (pathItem.ToLowerInvariant() == "ui")
            {
                continue;
            }
    
            if (pathItem.First() != '@' && string.IsNullOrEmpty(keyName))
            {
                keyName = pathItem;
                continue;
            }
    
            if (bindingItem.ToLowerInvariant() == "@enabled")
            {
                return this.LoadUIValue(keyName);
            }
    
            throw new UISettingsLoaderException("Can't load setting: {0}", binding);
        }
    
        throw new UISettingsLoaderException("Can't load setting: {0}", binding);
    }

    новый паттерн для циклов:
    Продолжи или умри! (continue or throw)

    Данная конструкция предназначена для распарсивания настроек по ключу вида
    "UI/MySetting1/@enabled"
    "UI/MySetting2/@enabled"
    ...
    строка всегда из трех элементов, всегда @enabled в конце, только средняя часть отличается.

    Запостил: adoconnection, 07 Сентября 2015

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

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

    Ошибка компиляции комментария:
    1. Гости могут высказаться только в понедельник, среду, четверг или воскресение
    ava Где здесь C++, guest?!
    А не использовать ли нам bbcode?
    • [b]жирный[/b] — жирный
    • [i]курсив[/i] — курсив
    • [u]подчеркнутый[/u] — подчеркнутый
    • [s]перечеркнутый[/s] — перечеркнутый
    • [blink]мигающий[/blink] — мигающий
    • [color=red]цвет[/color] — цвет (подробнее)
    • [size=20]размер[/size] — размер (подробнее)
    • [code=<language>]some code[/code] (подробнее)
    Проверочный код