Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему некорректно работает присваивание значения c#?

А. П. Профи (519), на голосовании 4 месяца назад
В классе есть поле:
 int population; 
public int Population
{
get => population;
protected set
{
if (Population < 0)
{
Console.WriteLine("\nНевозможно установить значение меньше нуля.");
}
else population = value;
}
}
И есть метод для изменения этого поля:
 public void RePopulation(int population) 
{
Population = population;
}
При попытке изменить значения поля через метод RePopulation логика обработки отрицательного значения не срабатывает. Почему и как это исправить?

И возможно ли сделать этот пример через автосвойство get set (чтобы не заводить отдельно в классе поле population)
Голосование за лучший ответ
qwertyplo Мастер (1637) 5 месяцев назад
походу в сеттере надо проверять параметр value, а не само свойство Population
 if (value < 0) 
Jurijus Zaksas Искусственный Интеллект (445791) 5 месяцев назад
Чувак... А почему ты проверяешь:

    if (Population < 0)  
а потом присваиваешь
  else population = value; 
Не находишь здесь никакого пробела в своей логике? Может, проверять все же тоже лучше новое значение value, а не старое Population?
Похожие вопросы