如何为此方法返回2个值?

时间:2015-04-09 20:56:19

标签: c#

这是我目前的代码:

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

4 个答案:

答案 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);