两个结构体的关系如下:
public struct strua
{
   public string a;
   public string b;
}public struct strub
{
   public string c;
   stuua[] stru = new strua[10];
}我的问题是  这样的结构应该怎样定义?并且定义后怎样赋值?

解决方案 »

  1.   

    public struct strua
    {
    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];
    }
    }
      

  2.   

    to micropentium6(小笨) 我用你的方法,定义是可以的,但是不能赋值。比如:
    strub mystru;
    mystru.c = "aaa";
    mystru.stru[0].a = "aaa";程序运行到第三句就会出错,显示“使用了可能为赋值的字段‘stru’”请问正确的赋值语句应该怎样写?
      

  3.   

    写错了,应该是“使用了可能未赋值的字段‘stru’”
      

  4.   

    stuua[] stru = new strua[]{new strua(),new strua(),....};
      

  5.   

    strub mystru;
    mystru.c = "aaa";
    mystru.stru[0].a = "aaa";
    你使用的是struct默认的构造函数,或者说你是在栈上分配的内存空间,而数组是要在托管堆中分配内存的,默认的构造函数可能只是简单的将stru[]=null而已,根本没有为数组分配空间,当然不能访问了
    所以我重载了struct的构造函数,如果你想在构造函数中直接为数组赋初值,那么
    stuua[] stru = new strua[]{new strua(),new strua(),....};是不错的选择:)说的不一定对,我对framework也知之甚少^_^
      

  6.   

    同意 
    stuua[] stru = new strua[]{new strua(),new strua(),....};
      

  7.   

    当然会错了,这样就不会了strub mystru;
    mystru.c = "aaa";strua a1;
    a1.a="a1a";
    a1.b="a1b";
    mystru.stru[0]=a1