Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Абасс... обсудите рахитекурту

21.05.24 11:29
Re: Абасс... обсудите рахитекурту
 
Программист коренной житель
в ответ alex445 18.05.24 07:37
Можно ли сделать лучше для описанной задачи (напомню - выделено жирным)? Может что с интерфейсами намутить?

Ничего мутить не надо.

Надо просто вынести валидацию в отдельную функцию и каждый класс должен валидировать то, за что он отвечает.


public class Param
{
    double maxValue;
    public virtual double MaxValue
    {
        get { return maxValue; }
        set
        {
           maxVaslue = value;
           Validate ();            
        }
    }

    protected virtual Validate ()
    {
    }
}
public class ParamVolatile : Param
{
    double currentValue;
    public double CurrentValue
    {
        get { return currentValue; }
        set
        {
           currentValue = value;
           Validate ();
        }
    }
    
    protected override void Validate ()
    {
        base.Validate ();
     
        currentValue = Math.Clamp(value, 0, MaxValue);
    }
}
 

Перейти на