Сравнение каждого объекта с тем же значением


Мой код хранит какую - инт значение о диапазон дат, и есть способ проверить, если все это ноль. Есть ли лучший способ сделать это, чем делать это?

public bool IsAllDayZero
{
    get
    {
        return
            Today == 0 &&
            Days1_2 == 0 &&
            Days3_6 == 0 &&
            Days7_10 == 0 &&
            Days11_15 == 0 &&
            Days16_30 == 0 &&
            Days31_45 == 0 &&
            Days46_60 == 0 &&
            Days60Plus == 0
            ;
        }
}


219
2
задан 8 сентября 2011 в 06:09 Источник Поделиться
Комментарии
2 ответа

Вопрос: почему вы хотите изменить его?

Я ставку вы можете сделать в сокращенной форме с использованием операции XOR, и, или и т. д. функций, но я считаю оно того не стоит. Например:

public bool IsAllDayZero
{
get
{
return
(Today | Days1_2 | Days3_6| Days7_10 | Days11_15 |
Days16_30 | Days31_45 | Days46_60 | Days60Plus) == 0;
}
}

Это действительно короче, но не так, чтобы это более ясно для какого-то другого человека о том, что этот код пытается достичь.

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

Однако в текущей реализации является ясное, полное и делает то, что обойтись без лишнего шума, и я просто рекомендую не менять его.

4
ответ дан 8 сентября 2011 в 06:09 Источник Поделиться

Я вижу 3 варианта решения:


  1. Используйте такие дни, а потом: дней.Все(Д => Д == 0)

  2. Вы можете определить переменную типа boolean areAllDayZero или что-то другое :-) и изменить его, когда вы установите значения свойств

  3. Использовать отражение

2
ответ дан 8 сентября 2011 в 06:09 Источник Поделиться