首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 结构数组的有关问题

2012-05-23 
C# 结构数组的问题我用C#编程定义了一个结构体数组。首先,声明了一个全局结构体数组publicstruct zgzhe//定

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,去掉就可以了。

热点排行