我编写了一个函数,它似乎适用于两个值(int r,int x),但现在我需要重载它并使用数组,以便它采用(int r,array)。我怎么会这样呢?数组的大小在这里并不重要,它将采用少数数字,如8 27 64等。
static double rthRoot (double r, double x)
{
double y = double.NaN;
if (x > 0)
{
y = Math.Exp((Math.Log(x)) / r);
}
if (r % 2 != 0)
{
if (x < 0)
{
y = -(Math.Exp((Math.Log(Math.Abs(x))) / r));
}
}
return y;
}int[] myArray;
myArray = new int[] { 8, 27, 64, 125 };
我想重载此函数但不是双x我想使用一个数组,如最后一个
答案 0 :(得分:0)
过载你的意思是这样的吗?
static double rthRoot(double r, double x) //1
{
//original
double y = double.NaN;
if (x > 0)
{
y = Math.Exp((Math.Log(x)) / r);
}
if (r % 2 != 0)
{
if (x < 0)
{
y = -(Math.Exp((Math.Log(Math.Abs(x))) / r));
}
}
return y;
}
static double rthRoot(double r, int[] x) //2
{
//overload
double y = double.NaN;
//whatever
return y;
}
如果您为第二个参数传递int[]
,则会转到方法2。
答案 1 :(得分:0)
这是你之后的事情吗?
static double[] rthRoot(double r, double[] xs)
{
return xs.Select(x => rthRoot(r, x)).ToArray();
}
static double[] rthRoot(double r, int[] xs)
{
return xs.Select(x => rthRoot(r, (double)x)).ToArray();
}
两者都依赖于您当前的rthRoot
定义。