切换两个参数之间的值[最佳实践/更好的代码]

时间:2011-09-07 09:27:09

标签: c# coding-style

我敢打赌这个任务有一个更短更好的写作方式吗?

/// <summary>
/// Consumption between two parameters
/// </summary>
public double Consumed(double val1, double val2)
{
    double currentValue = 0;

    // Don't calculate backward
    if (val1 < val2)
    {
        currentValue = val1;
        val2 = val1;
        val2 = currentValue;
    }
    currentValue = (val1 - val2);
    return currentValue;
}

如果是否定的话,一种方法就是反转结果。 你会说什么称为“最佳实践”? 谢谢先进,

2 个答案:

答案 0 :(得分:10)

您正在计算两个输入值之间差异的absolute value

public double Consumed(double val1, double val2)
{
    return Math.Abs(val1 - val2);
}

答案 1 :(得分:2)

我通常只使用交换参数再次调用我的函数:

public double Consumed(double val1, double val2)
{
    if (val1 < val2)
        return Consumed(val2,val1);

    //Do Stuff
}

当然,在您的示例中Math.Abs已经存在,但对于一般情况,这是我首选的解决方案。