参数传递
有两个结构体
public struct Height
{
string str;
int i;
double d;
}
public struct Coordinate
{
double dir;
double dis;
}
有一个函数function,想给function传递这两个结构体,根据结构体的不同,做出相应的处理,可是我怎么知道传递的是哪一个结构体?
[解决办法]
其实,你应该使用泛型 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); }
[解决办法]
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()
[解决办法]
恩
重载简单易懂高效,建议用重载