将数组求值为类的字段

本文关键字:字段 数组 | 更新日期: 2023-09-27 18:26:16

我希望类中有一个数组,可以由类本身的方法使用。我想用一个方法计算数组,用另一个方法读取,我如何用c#来实现这一点?感谢

class Something 
{
    Double[] arrayName = new Double[20]; 
    public void Method() 
    {
        arrayName[index] = value; 
        index++;
    }
}

将数组求值为类的字段

public class Foo
{
    private SomeType[] _someArrayField;
    public void SomeMethod()
    {
        // you can access the _someArrayField field here
    }
}

您披露的关于该问题的信息令人困惑(可能是因为语言障碍),但它是两个问题之一:

  1. 您正试图从Something的上下文之外访问arrayName(如从另一个类访问),问题是arrayName的访问级别(默认访问级别为private)。如果您需要与另一个类共享arrayName字段,那么您可以在它前面加上public,如下所示:

    class某事{//假设您在某个地方定义了indexpublic Double[]arrayName=new Double[20];public void方法(){arrayName[index]=值;索引++;}}

  2. 您正在尝试分配数组元素的值。您所拥有的代码应该工作到数组的大小,在您的情况下,当index = 20(或21个元素)时,数组的大小将是。下一次迭代发生后,您将遇到IndexOutOfBoundsException,因为数组中没有足够的空间容纳下一个元素。

我建议切换到List<Double>,它类似于可变长度数组。它的实现看起来像:

class Something 
{
    List<Double> listName = new List<Double>(); 
    public void Method() 
    {
        listName[index] = value; 
        index++;
    }
}

但是,如果您不能更改集合类型(尽管如果您需要此功能,我建议您这样做),如果index大于arrayName的大小,则可以调整阵列的大小。我可以提供一个例子(或者你可以通过简单的搜索找到其中一个),如果这最终是你想要的。