C#。在处理重载时如何避免代码重复

C#.How can I avoid code repeating when I work with overload

你能告诉我在我应该根据用户输入(参数数量)选择重载的情况下如何避免重复代码吗?如果有任何帮助,我将不胜感激。

    public int GetSomething(int firstNumber, int secondNumber)
    {

        **var var1= GetSomething(firstNumber, secondNumber);
        var var2= GetSomething(thirdNumber, var1);**

        return var2;
    }

    public int GetSomething(int firstNumber, int secondNumber, int thirdNumber, int fourthNumber)
    {

        **var var1= GetSomething(firstNumber, secondNumber);
        var var2= GetSomething(thirdNumber, var1);
        var var3= GetSomething(fourthNumber, var2);**

        return var3;
    }

    public int GetSomething(int firstNumber, int secondNumber, int thirdNumber, int fourthNumber, int fifthNumber)
    {

        **var var1= GetSomething(firstNumber, secondNumber);
        var var2= GetSomething(thirdNumber, var1;
        var var3= GetSomething(fourthNumber, var2);
        var var4= GetSomething(fifthNumber, var3);**

        return var4;
    }

你可以使用 params.

public int GetSomething(params int[] numbers)
{
    int total = 0;
    foreach (int number in numbers)
    {
        total = Calculate(total, number);
    }

    return total;
}

您可以通过为 int 类型

创建自定义扩展方法来尝试避免重复代码
public static class Ext
{
    public static int GetSomething(this int firstNumber, int secondNumber)
    {
        //just an example
        return firstNumber + secondNumber;
    }
}

回答使用示例

var firstNumber = 1;
var secondNumber = 2;
var thirdNumber = 3;

var var1 = firstNumber.GetSomething(secondNumber);
var var2 = thirdNumber.GetSomething(var1);

return var2;

您可以将此示例扩展到任意数量的参数,而无需创建重复的方法