我认为标题可能是错误的..哈哈不确定..无论如何..
我有3种不同的数据类型。
public class data1
{
public Color color;
public int len;
public DrawingVisual dv;
Other vars...
}
public class data2
{
public Color color;
public int len;
public DrawingVisual dv;
Other vars different from data1 vars...
}
等等...
我该如何创建一个函数来传递这些变量,然后在函数内部获取所需的变量。
例..
void Something(var data)
{
switch (typeof(data))
{
case data1:
break;
case data1:
break;
}
}
这显然不会工作..但这只是一个例子..
我实际上该怎么做?
谢谢
最佳答案
考虑创建类层次结构,并将方法移至该层次结构。基类:
public abstract class Data
{
public Color color;
public int len;
public DrawingVisual dv;
public abstract void Something();
}
还有两个派生类Data1和Data2:
public class Data1 : Data
{
// Other vars...
public override void Something()
{
// Use base class data and other vars
}
}
public class Data2 : Data
{
// Other vars different from Data1 vars
public override void Something()
{
// different implementation
}
}
现在,当您拥有这些类的实例时,您可以简单地在每个项目上调用Something,而无需尝试确定其类型。每个项目将具有完成操作所需的所有必需变量:
List<Data> items = // get list of Data1 and Data2
foreach(Data data in items)
data.DoSomething();
关于c# - 传递3种不同数据类型来做同一件事的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17860152/