Dire que j'ai une classe comme ça, pour le calcul des frais de déplacement des distances différentes avec différents modes de transport:
public class TransportationCostCalculator
{
public double DistanceToDestination { get; set; }
public decimal CostOfTravel(string transportMethod)
{
switch (transportMethod)
{
case "Bicycle":
return (decimal)(DistanceToDestination * 1);
case "Bus":
return (decimal)(DistanceToDestination * 2);
case "Car":
return (decimal)(DistanceToDestination * 3);
default:
throw new ArgumentOutOfRangeException();
}
}
C'est très bien et tout, mais le commutateur peut être un cauchemar à l'entretien sage, et que si je veux utiliser de l'avion ou de train plus tard? Puis-je changer la classe ci-dessus. Quelle alternative à un commutateur cas pourrais-je l'utiliser ici et toutes les allusions à combien?
Je suis d'imaginer de l'utiliser dans une application console comme cela qui devait être exécuté depuis la ligne de commande avec des arguments de ce type de véhicule de transport que vous souhaitez utiliser, et la distance que vous voulez de voyage:
class Program
{
static void Main(string[] args)
{
if(args.Length < 2)
{
Console.WriteLine("Not enough arguments to run this program");
Console.ReadLine();
}
else
{
var transportMethod = args[0];
var distance = args[1];
var calculator = new TransportCostCalculator { DistanceToDestination = double.Parse(distance) };
var result = calculator.CostOfTravel(transportMethod);
Console.WriteLine(result);
Console.ReadLine();
}
}
}
Tous les indicateurs grandement apprécié!