Chr*_*zio 1 c# oop data-structures
我认为标题可能是错的..哈哈不确定..反正..
我有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...
}
Run Code Online (Sandbox Code Playgroud)
等等...
如何创建一个函数来传递这些函数,然后在函数内部获取我需要的变量..示例..
void Something(var data)
{
switch (typeof(data))
{
case data1:
break;
case data1:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
这显然不会工作..但它只是一个例子..
我怎么能这样做呢?
谢谢
考虑创建类层次结构,并将方法Something移动到该层次结构.基类:
public abstract class Data
{
public Color color;
public int len;
public DrawingVisual dv;
public abstract void Something();
}
Run Code Online (Sandbox Code Playgroud)
两个派生类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
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当您拥有这些类的实例时,您只需在每个项目上调用Something而不尝试确定其类型.每个项目都将包含完成操作所需的所有变量:
List<Data> items = // get list of Data1 and Data2
foreach(Data data in items)
data.DoSomething();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1144 次 |
最近记录: |