Упростить метод по булеву значению

Рейтинг: -1Ответов: 1Опубликовано: 29.05.2023

мне необходимл присвоить данные двум переменным Property1 & Property2

total находится в CountTotal

в зависимоти если ValPerson = 1 | 0

если 1 = то тотал идет в проперти1 если 0 то тотал идет в проперти2

(там только 1 и 0 почему то инт, но мне объяснили я так и не поняла, вижу что инт принимаю, но вроде это булево значение, может я тип неправильный даю, я просто написала инт, а может есть по другому как bool дает ошибку, то есть я написала в модели bool, компилятор ругался но данные не показал, только написал что конверт не смог сделать моего джейсона, может я не знаю какой тип типа булИнт(?)...), но в базе либо один либо ноль (но это отдельный вопрос по совместимости БД)

public class Weighs
{
    public int ValPerson { get; set; }
    public int CountTotal { get; set; }

    public int Property1 { get => @CalculForProperty1(ValPerson, CountTotal); }
    public int Property2 { get => @CalculForProperty2(ValPerson, CountTotal); }

    public int CalculForProperty1(int who, int nbCalcul1)
    {
        if (who != 0)
        {
            return nbCalcul1;
        }
        else
        {
            return 0;
        }
    }

    public int CalculForProperty2(int who, int nbCalcul2)
    {
        if (who == 0)
        {
            return nbCalcul2;
        }
        else
        {
            return 0;
        }
    }
}

Ответы

▲ 1Принят

Как-то так можно этот код упростить.

public class Weighs
{
    public int ValPerson { get; set; }
    public int CountTotal { get; set; }

    public int Property1 => CalculForProperty(ValPerson != 0, CountTotal);
    public int Property2 => CalculForProperty(ValPerson == 0, CountTotal);

    private int CalculForProperty(bool who, int num)
    {
        return who ? num : 0;
    }
}