C# 结构数组的问题
我用C#编程定义了一个结构体数组。
首先,声明了一个全局结构体数组
     public  struct zgzhe   //定义钻杆组合结构体
     {
         public static float zgds;    //钻杆顶深
         public static float zgdis;    //钻杆底深
         public static float zgnjj;     //钻杆内径
         public static float zgwjj;     //钻杆外径
         public static float zjdgc;     //钻具单根长度
         public static float jtwj;      //接头外径
         public static float jtcd;      //接头长度          
     }
   在后面的设计中重新声明了一个结构体数组zgzhe1,
         zgzhe[] zgzh1 =new zgzhe[10];  
    然后我想给这个结构体数组赋值,按照正常的套路应该是这样的     
         int i;
         for(i=0;i<10;i++)      
       {
         zgzh1[0].zgds=xx;
         zgzh1[0].zgdis=xx;
         zgzh1[0].zgnjj=xx;
         zgzh1[0].zgwjj=xx;
         zgzh1[0].zjdgc=xx;
         zgzh1[0].jtwj=xx;
         zgzh1[0].jtcd=xx;
       }      
    可是,实际的情况是,我的定义没有问题,然后当我想赋值的时候我的调用就出问题了
        我输入:
         zgzh1[0].这个.之后根本没有弹出我希望的结构体里的元素。而是只有四个选项,分别是:Equals,Gethashcode,       Gettype和TOstring,始终是无法赋值结构体元素,我用的是VS2010,是我哪里的定义出问题了,还是开始的时候需要声明什么呢?求各位达人详解,我都困惑了一个月了。
------解决方案--------------------
C#定义结构体成员必须加 public static 吗,什么作用?
int i;
 for(i=0;i<10;i++)  
 {
 zgzh1[0].zgds=xx;
 zgzh1[0].zgdis=xx;
 zgzh1[0].zgnjj=xx;
 zgzh1[0].zgwjj=xx;
 zgzh1[0].zjdgc=xx;
 zgzh1[0].jtwj=xx;
 zgzh1[0].jtcd=xx;
 }  
应该是
int i;
 for(i=0;i<10;i++)  
 {
 zgzh1[i].zgds=xx;
 zgzh1[i].zgdis=xx;
 zgzh1[i].zgnjj=xx;
 zgzh1[i].zgwjj=xx;
 zgzh1[i].zjdgc=xx;
 zgzh1[i].jtwj=xx;
 zgzh1[i].jtcd=xx;
 }  吧  
------解决方案--------------------
你的是static变量,当然弹不出来,楼主设计成static的初衷是什么?
------解决方案--------------------
你结构体中都是静态变量,当然不能通过 实例 的方式访问了
------解决方案--------------------
问题就是static,去掉就可以了。