C#中结构体声明数组成员如何初始化?
我声明了以下的结构体:
          struct indiv
             {
                public int[] chr;
                public double fit;
             }  ;     
            然后
            indiv    bestindiv=new indiv();
            indiv    worstindiv= new indiv();
            indiv    currentbest = new indiv();
            indivi[] pop = new indiv[500];
vs2010警告说   
从未对字段“Bishop.gafor.indivl.chrom”赋值,字段将一直保持其默认值 null	C:\Documents and Settings\Administrator\桌面\DSREA-MC2.3\Bishop\gafor.cs
编译可以通过,但是运行的时候出错了。请教各位大侠,如何解决这个问题?
------解决方案--------------------哪来的chrom,你出错在哪出的错,你这几行应该不会出错
另外  indivi[]写错了,应该是 indiv[]
------解决方案--------------------你遇到的错误和你贴的代码无关
------解决方案--------------------找这个文件gafor.cs里有错误
------解决方案--------------------
一般用静态构造函数,
 struct indiv
  {
  private static indiv s_default;
  static indiv()
  {
    s_default.chr=null;
    s_default.fit=0.0;
  }
  public static indiv Default
  {
     get
     {
           return s_default;
     }
  }
  public int[] chr;
  public double fit;
  } ;
  indiv bestindiv=indiv.Default;//这样就可以初始化成员,  
------解决方案--------------------500个元素的结构体数组,就比较麻烦,最好把初始化chr数组作为一个方法,
struct indiv
{
...
  public void initialize(int nArrayLength)
  {
  ....
  chr=new int[nArrayLength];
  //如果要初始化:
  for(int i=0;i<nArrayLength;i++)
  {
  chr[i]=...;
  }    
 }
 private static indiv s_default;
  static indiv()
  {
  s_default.chr=null;
  s_default.fit=0.0;
  }
  public static indiv Default
  {
  get
  {
  return s_default;
  }
  }
}
indivi[] pop = new indiv[500];
for(int i=0;i<500;i++)
{
  indivi[i]=indivi.Default;
  indivi[i].initialize(50);
}