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,本来就是全部保存了的。