发送双精度数组时从另一个类调用方法时出错

时间:2016-06-26 19:08:17

标签: c# arrays methods

我试图将一个双打数组传递给另一个类中的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'”

如何从我的方法返回数组,为什么我不能将数组传递给方法?

2 个答案:

答案 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