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

struct 的有关问题,请帮忙,多谢

2012-03-31 
struct 的问题,请帮忙,谢谢public struct df{public string headtextpublic string datafield}Hashtable

struct 的问题,请帮忙,谢谢
public struct df
  {
  public string headtext;
  public string datafield;
  }

   

  Hashtable ht = new Hashtable();

   
private void Form1_Load(object sender, EventArgs e)
  {

  df mydf;


  foreach (DataGridViewColumn dgvc in dataGridView1.Columns)
  {
  string col=dgvc.Name;
  mydf.headtext = dgvc.HeaderText;
  mydf.datafield = dgvc.DataPropertyName;
  ht.Add(col, mydf);
  }
   

  }


private void button1_Click(object sender, EventArgs e)
  {
  foreach (DictionaryEntry de in ht)
  {
  MessageBox.Show(((df)de.Value).headtext);
  }
  }

问题:df mydf;
这个定义是放在foreach 外面还是里面,我测试了结果,程序运行结果都是一样的,请指教

[解决办法]
放在循环内或者循环外都一样,其实struct会分配在stack中,c#编译器会在struct第一次使用之前给它分配空间,即使你放在循环内,c#优化编译器也不会多次重复分配和回收struct的空间,

所以不论你放在循环内还是外,生成的代码都是一样的,不会有任何区别,
[解决办法]
ht.Add(col, mydf);
你是用这句填写的ht,本来就是全部保存了的。

热点排行