我试图将一个双打数组传递给另一个类中的mehtod,这个类将进行一些计算并返回另一个双精度数组。
以下是我目前的计算方法。
private void btnCalcLGM_Click(object sender, EventArgs e)
{
public double[] myInputArray = {455.0,400.0,300.0,200.0,100.0};
LogisticGrowthDCA prodArray = new LogisticGrowthDCA (myInputArray);
}
这是我想要调用的类和方法。
public class LogisticGrowthDCA
{
private double defaultK = 500000;
private double defaultA = 50;
private double defaultN = .5;
public double[] myArray;
public LogisticGrowthDCA(double[] myInputArray)
{
for (int i = 0; i< myInputArray.Length; i++)
{
myArray[i] = myInputArray[i]; //do some calculation
return myArray;
}
}
}
它说我得到的错误如下: “字段初始值设定项不能引用非静态字段,方法或属性'DataAccessProject.Form1.myInputArray'”
如何从我的方法返回数组,为什么我不能将数组传递给方法?
答案 0 :(得分:1)
您无法在方法中声明具有访问修饰符的变量。 即 public
double[] myInputArray = {455.0,400.0,300.0,200.0,100.0};
另外,创建对象时无法返回任何内容。 (使用构造函数时)。
public LogisticGrowthDCA(double[] myInputArray)
{
for (int i = 0; i< myInputArray.Length; i++)
{
myArray[i] = myInputArray[i]; //do some calculation
}
}
答案 1 :(得分:0)
您的代码中存在以下错误
首先,对于本地方法变量,您不能拥有public/private/protected
之类的访问修饰符。此外,将它们声明为公共将无法理解它们在方法块中的范围限制。
public double[] myInputArray = {455.0,400.0,300.0,200.0,100.0};
你的类LogisticGrowthDCA
构造函数中的第二个你试图返回一个数组(如下所示),这是不可能的,因为构造函数用于字段初始化,因此不会返回任何内容并且是{{1默认情况下总是输入。
void
了解更多信息,请阅读Constructor in C# Programming。