将数组求值为类的字段
本文关键字:字段 数组 | 更新日期: 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
}
}
您披露的关于该问题的信息令人困惑(可能是因为语言障碍),但它是两个问题之一:
-
您正试图从
Something
的上下文之外访问arrayName
(如从另一个类访问),问题是arrayName
的访问级别(默认访问级别为private
)。如果您需要与另一个类共享arrayName
字段,那么您可以在它前面加上public
,如下所示:class某事{//假设您在某个地方定义了
index
public Double[]arrayName=new Double[20];public void方法(){arrayName[index]=值;索引++;}} -
您正在尝试分配数组元素的值。您所拥有的代码应该工作到数组的大小,在您的情况下,当
index = 20
(或21个元素)时,数组的大小将是。下一次迭代发生后,您将遇到IndexOutOfBoundsException
,因为数组中没有足够的空间容纳下一个元素。
我建议切换到List<Double>
,它类似于可变长度数组。它的实现看起来像:
class Something
{
List<Double> listName = new List<Double>();
public void Method()
{
listName[index] = value;
index++;
}
}
但是,如果您不能更改集合类型(尽管如果您需要此功能,我建议您这样做),如果index
大于arrayName
的大小,则可以调整阵列的大小。我可以提供一个例子(或者你可以通过简单的搜索找到其中一个),如果这最终是你想要的。