两个结构体的关系如下:
public struct strua
{
public string a;
public string b;
}public struct strub
{
public string c;
stuua[] stru = new strua[10];
}我的问题是 这样的结构应该怎样定义?并且定义后怎样赋值?
public struct strua
{
public string a;
public string b;
}public struct strub
{
public string c;
stuua[] stru = new strua[10];
}我的问题是 这样的结构应该怎样定义?并且定义后怎样赋值?
{
public string a;
public string b;
} public struct strub
{
public string c;
public strua[] stru;
public strub(string s)
{
c=s;
stru=new strua[10];
}
}
strub mystru;
mystru.c = "aaa";
mystru.stru[0].a = "aaa";程序运行到第三句就会出错,显示“使用了可能为赋值的字段‘stru’”请问正确的赋值语句应该怎样写?
mystru.c = "aaa";
mystru.stru[0].a = "aaa";
你使用的是struct默认的构造函数,或者说你是在栈上分配的内存空间,而数组是要在托管堆中分配内存的,默认的构造函数可能只是简单的将stru[]=null而已,根本没有为数组分配空间,当然不能访问了
所以我重载了struct的构造函数,如果你想在构造函数中直接为数组赋初值,那么
stuua[] stru = new strua[]{new strua(),new strua(),....};是不错的选择:)说的不一定对,我对framework也知之甚少^_^
stuua[] stru = new strua[]{new strua(),new strua(),....};
mystru.c = "aaa";strua a1;
a1.a="a1a";
a1.b="a1b";
mystru.stru[0]=a1