这是我目前的代码:
public static double CalculateTip(double totalExpense)
{
const double TIP1 = 0.15;
return totalExpense * TIP1;
}
//Calculation for tip 2
public static double CalculateTip2(double totalExpense)
{
const double TIP2 = 0.20;
return totalExpense * TIP2;
}
我怎样才能将2合1方法合并?我的课程运行完美并且根据教授的指示,但是我使用了5种方法而不是4种。显然你必须能够将两者结合起来,否则他不会说他只需要4种方法。
程序的最终输出如下所示
Tip Calculator Please enter the total: Clear console Tip Calculator The total before taxes and tip: 50.00 (user input obviously) Taxes : $4.50 Tip 15%: $7.50 Total including taxes and 15% tip: $62.00 Tip 20%: 10:00 Total including taxes and 20% tip: $64.50
答案 0 :(得分:3)
考虑使用Tuple
Tuple<double, double> CalculateTip(double totalExpense)
{
const double TIP1 = 0.15;
const double TIP2 = 0.20;
return Tuple.Create<double, double>(totalExpense * TIP1, totalExpense * TIP2);
}
答案 1 :(得分:2)
除了某些常量之外,任何时候你有两个相同的方法,你应该考虑将该参数作为方法的参数。
该方法应该做一件事,计算提示量(不计算两个提示量)。
考虑将提示百分比传递给方法并调用它两次。
此外,请勿使用双打作为货币,而应使用Decimal
代替。
答案 2 :(得分:0)
将Tip作为附加参数传递给(通用)CalculateTip()函数(因此该函数将有两个参数,tip和totalExpense)并使用不同的Tip值调用它两次。它确实是相同的功能 - 只是在不同的参数上运行。
答案 3 :(得分:0)
您应该使方法接受提示百分比,而不是在方法中使用常量值。将常量保持在类级别并在方法调用中使用它们。这使它更具动态性,并且能够结合起来。
readonly double TIP1 = 0.15;
readonly double TIP2 = 0.20;
public static double CalculateTip(double totalExpense, double tip)
{
return totalExpense * tip;
}
然后在调用方法时,您可以指定要使用的提示值:
var tip1Value = CalculateTip(20.00,TIP1);
var tip2Value = CalculateTip(20.00,TIP2);