如何创建100个新对象的数组?

Pat*_*ryk 3 c# arrays

我正在尝试这样的事情:

class point
{
public int x;
public int y;
}

point[] array = new point[100];
array[0].x = 5;
Run Code Online (Sandbox Code Playgroud)

这是错误: 对象引用未设置为对象的实例.(@最后一行)

怎么了?:P

Ska*_*lli 12

它只创建数组,但所有元素都用null初始化.
您需要一个循环或类似的东西来创建您的类的实例.(foreach循环在这种情况下不起作用)示例:

point[] array = new point[100];
for(int i = 0; i < 100; ++i)
{
    array[i] = new point();
}

array[0].x = 5;
Run Code Online (Sandbox Code Playgroud)


Pao*_*sco 6

当你这样做

point[] array = new point[100];
Run Code Online (Sandbox Code Playgroud)

你创建一个数组,而不是100个对象.数组的元素为null.那时你必须创建每个元素:

array[0] = new point();
array[0].x = 5;
Run Code Online (Sandbox Code Playgroud)


THX*_*138 6

你可以class point改为struct point在这种情况下new point[500]创建一个初始化为0,0(而不是null的数组)的点数组.