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

参数传递解决思路

2012-02-20 
参数传递有两个结构体public struct Height{string strint idouble d}public struct Coordinate{double

参数传递
有两个结构体
public struct Height
{
  string str;
  int i;
  double d;
}

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


[解决办法]

C# code
其实,你应该使用泛型        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);        }
[解决办法]
C# code
public void function(object obj) {  if (obj is Height)  {    //  }  else if (obj is Coordinate)  {    //  }}
[解决办法]
楼上的的,使用重载也可以的
private void function(Height x)
{
MessageBox.Show(x.GetType().Name);
}
private void function(Coordinate c)
{
MessageBox.Show(c.GetType().Name);
}

[解决办法]
方法重载

void function(Heigth heigth){
//...
}
void function(Coordinate c){
//...
}
//
同意楼上
[解决办法]
重载比较好. 
或者就判断类型. is或者typeof()==GetType()
[解决办法]

重载简单易懂高效,建议用重载

热点排行