Я хочу указать на возможную ошибку и / или неправильный дизайн в вашем установщике свойств (это может быть причиной того, что ваш код " всегда возвращает false ").
Если вы посмотрите внимательно, вы увидите, что CheckDate
всегда вызывается с параметрами dan
, mesec
и year
. Как вы знаете, value
- это значение, которое нужно установить (Day = 1
, или Day = 500
), но оно не является частью CheckDate
-call.
Если это ваша цель, я могу сказать, что это очень плохой дизайн. Вы должны вызывать CheckDate
прямо в своем коде, а не с присваивающим почти побочные эффекты установщиком свойств .
public int Day
{
get
{
return day;
}
set
{
// Why this?
if (CheckDate(dan, mesec, year) == true)
{
day = value;
}
else
{
throw new Exception("Day is incorrect!");
}
}
}