come gestisco Enum senza utilizzare switch o se le istruzioni in C#?Enfasi polimorfiche per la gestione dello stato
Per esempio
enum Pricemethod
{
Max,
Min,
Average
}
... e ho una classe Article
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();
}
}
}
}
voglio evitare l'istruzione switch e renderlo generico.
Per un Pricemethod specifico chiamare un Calcolo specifico e restituirlo.
get { return CalculatedPrice(Pricemethod); }
Quale motivo è da utilizzare qui e forse qualcuno ha una buona idea di implementazione. Ho già cercato uno schema di stato, ma non penso che sia quello giusto.
prezzi dovrebbero essere 'decimal', non' double'. Usa 'double' per le grandezze fisiche come lunghezza e massa; utilizzare 'decimale' per le quantità decimali esatte. –
Hai intenzione di restituire una ** raccolta ** di prezzi mutabile? Cosa impedisce al chiamante del tuo metodo di chiamare 'Cancella 'in quella lista? –
Quindi lo hai taggato con _strategy-pattern_? Questa è praticamente la risposta qui ... –