读书人

参数传递解决思路

发布时间: 2012-02-20 21:18:24 作者: rapoo

参数传递
有两个结构体
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()
[解决办法]

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

读书人网 >C#

热点推荐