日期:2014-05-18  浏览次数:20808 次

c#创建结构数组的问题
代码如下:
struct   CIRCLE{
    ......
}

....
CIRCLE[]   c   =   new   CIRCLE[];

编译失败,报错:数组创建必须有数组大小或数组初始值设定项

========================
问题:
1.理论上说,.net默认会为结构建立一个无参数的构造函数,为什么仍提示必须设置初始值?
2.如果要对结构数组赋值,那么应该如何赋值呢?


------解决方案--------------------
结构数组也是数组,是数组就必须初始化,结构可以随意定置
------解决方案--------------------
CIRCLE[] c = new CIRCLE[]; //语法错误

CIRCLE[] c;
或者
CIRCLE[] c = new CIRCLE[数据大小];
------解决方案--------------------
CIRCLE[] c;
...
c.name = new 你的name的类型 [k+1];
for (int i=0; i <=k; i++)
{
c.name[i] = ...;
}

------解决方案--------------------
用arraylist
------解决方案--------------------
这并不是结构数组构造函数的事,而是声明数组的问题。
声明数组new 的时候必须,指明数组大小!
你出错就是在这了。