有两个结构体
public struct Height
{
   string str;
   int i;
   double d;
}public struct Coordinate
{
   double dir;
   double dis;
}
有一个函数function,想给function传递这两个结构体,根据结构体的不同,做出相应的处理,可是我怎么知道传递的是哪一个结构体?

解决方案 »

  1.   

    你可以,第一个参数传Height 第二个参数传Coordinate 
    你不会还分不清哪个是第一个参数,哪个是第二个参数吧
      

  2.   

    有一个通用的类型,比如
    public void function(object obj)
    如果obj是Height,则转入相应的处理函数
    如果obj是Coordinate,则转入另一个处理函数
    也就是说只传递一个参数
      

  3.   

    其实,你应该使用泛型
            private void function(object obj)
            {
                MessageBox.Show(obj.GetType().Name);
            }        private void button2_Click(object sender, EventArgs e)
            {
                Height h = new Height();
                
                function(h);            Coordinate c = new Coordinate();
                function(c);
            }
      

  4.   

    public void function(object obj) 
    {
      if (obj is Height)
      {
        //
      }
      else if (obj is Coordinate)
      {
        //
      }
    }
      

  5.   

    楼上的的,使用重载也可以的
      private void function(Height x)
            {
                MessageBox.Show(x.GetType().Name);
            }
            private void function(Coordinate c)
            {
                MessageBox.Show(c.GetType().Name);
            }
      

  6.   

    方法重载void function(Heigth heigth){
    //...
    }
    void function(Coordinate c){
    //...
    }
    //
    同意楼上
      

  7.   

    重载比较好. 
    或者就判断类型. is或者typeof()==GetType()