将数组作为类的字段进行求值?

时间:2012-03-01 22:27:47

标签: c#

我希望在类中有一个数组,可以通过类本身的方法使用。我想通过一种方法评估数组并通过另一种方法读取,我怎样才能用c#做到这一点?感谢

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

2 个答案:

答案 0 :(得分:2)

public class Foo
{
    private SomeType[] _someArrayField;

    public void SomeMethod()
    {
        // you can access the _someArrayField field here
    }
}

答案 1 :(得分:0)

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

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

    类什么的 {     //假设你在某处定义了index     public Double [] arrayName = new Double [20];     public void Method()     {         arrayName [index] = value;         索引++;     } }

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

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

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

    但如果您无法更改集合类型(尽管如果您需要此功能我会建议),如果index大于arrayName,则可以调整数组大小。我可以提供一个例子(或者你可以通过一个简单的搜索找到其中一个)如果这最终成为你正在寻找的东西。