Почему условная конструкция if работает некоректно?
Не понимаю, в чем проблема, но при присваивании переменной х значения 20 (большее 10), выводится 0, хотя должно быть 10.
internal class Program
{
static void Main(string[] args)
{
Point point = new Point();
point.X = 20;
Console.WriteLine(point.X);
}
}
internal class Point
{
private int x;
public int X
{
get { return x; }
set
{
if (value > 10)
{
value = 10;
return;
}
if (value < 0) {
value = 0;
return;
}
x = value;
}
}
}
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Присваивайте значение переменной x
, а не value
, раз уж вы выходите сразу по return
и до строки x = value;
в конце кода ход не доходит:
if (value > 10)
{
x = 10;
return;
}
Либо сделайте так, чтобы это присваивание всегда срабатывало:
if (value > 10)
{
value = 10;
}
else if (value < 0) {
value = 0;
}
x = value;