Enzymy polimorficzne do obsługi stanu

jak obsłużyć Enums bez użycia instrukcji switch lub if w C #?

Na przykład

enum Pricemethod
{
    Max,
    Min,
    Average
}

... i mam artykuł klasy

 public class Article 
{
    private List<Double> _pricehistorie;

    public List<Double> Pricehistorie
    {
        get { return _pricehistorie; }
        set { _pricehistorie = value; }
    }

    public Pricemethod Pricemethod { get; set; }

    public double Price
    {
        get {
            switch (Pricemethod)
            {
                case Pricemethod.Average: return Average();
                case Pricemethod.Max: return Max();
                case Pricemethod.Min: return Min();
            }

        }
    }

}

chcę uniknąć instrukcji switch i uczynić ją ogólną.

W przypadku konkretnego Pricemethod wezwij konkretną kalkulację i zwróć ją.

get { return CalculatedPrice(Pricemethod); }

Jaki wzór ma tu być użyty, a może ktoś ma dobry pomysł na wdrożenie. Przeszukano już wzorzec stanu, ale nie sądzę, aby był to właściwy.

questionAnswers(2)

yourAnswerToTheQuestion