【发布时间】:2014-03-21 05:55:36
【问题描述】:
我遇到了一些代码,我想知道这个方法中是否需要返回值。 该方法改变了一个二维双精度数组的一些值。
public double[,] startsimplex_werte(double[,]f)
{
double standardabstand_s = 1.0;
double[] vektor_e1 = newdouble[2]{1.0,0.0};
double[] vektor_e2 = newdouble[2]{0.0,1.0};
f[1,1]=f[0,1]+vektor_e1[0]*standardabstand_s;
f[1,2]=f[0,2];
f[2,1]=f[0,1];
f[2,2]=f[0,2]+vektor_e2[1]*standardabstand_s;
return f;
}
有一个二维数组叫做:
double[,]f = new double[3,3];
那么那么就在数组上使用该方法:
f = berechne.startsimplex_werte(f);
方法的具体作用并不重要。我的问题是:
是否需要在方法中写“return f”来返回数组的值。 由于数组是引用类型,因此存在引用调用。所以该方法已经改变了数组的实际数据成员。我会编写没有返回值的相同方法(void 方法),只需调用该方法而不将其分配给数组。 imo通过参数传输数组很重要。两个变体都会做同样的事情,还是我错了?
希望有人能告诉我我的建议是否属实。
【问题讨论】:
-
不需要返回f,可以新建一个二维数组,不接触参数就返回。在您的情况下,您不需要这样做,因为 f 的唯一目的是作为返回对象。