struct结构问题
两个结构 
 struct   p1 
 { 
       public   int   a; 
 } 
 struct   p2 
 { 
       public   string   b; 
 } 
 默认过程: 
 private   void   setp1(ref   p1   p) 
 { 
       random   rnd=new   random(); 
       p.a=rnd.next(10000); 
 } 
 private   void   setp2(ref   p2   p) 
 { 
       random   rnd=new   random(); 
       p.b=rnd.next(10000).tostring(); 
 } 
 我想有没有办法把两个过程集成起来?????????????????????问问能不能实现 
 private   setp(ref   type   p) 
 { 
          反射p的字段并且赋值 
 }
------解决方案--------------------          struct p1 
         { 
             public int a; 
         } 
         struct p2 
         { 
             public string b; 
         }     
         private object setp(object o) 
         { 
             System.Random rnd = new System.Random(); 
             FieldInfo[] fields = o.GetType().GetFields(); 
             Type ht = o.GetType(); 
             if (fields[0].FieldType.ToString() ==  "System.Int32 ") 
             { 
                 object oo = new object(); 
                 oo = rnd.Next(10000); 
                 fields[0].SetValue(o, oo); 
             } 
             else if (fields[0].FieldType.ToString() ==  "System.String ") 
             { 
                 object oo = new object(); 
                 oo = rnd.Next(10000).ToString(); 
                 fields[0].SetValue(o, oo); 
             } 
             return o; 
         }   
         private void button1_Click(object sender, EventArgs e) 
         { 
             p1 p = new p1(); 
             object o = setp(p); 
             p = (p1)o; 
             MessageBox.Show(p.a.ToString()); 
         }   
         private void button2_Click(object sender, EventArgs e) 
         { 
             p2 p = new p2(); 
             object o = setp(p); 
             p = (p2)o; 
             MessageBox.Show(p.b.ToString()); 
         }
------解决方案--------------------