我有以下问题。
我有一类“Instellingen”这是在其他3类转换类型
public class Instellingen
{
private int _ID;
}
public class Class1: Button
{
private Instellingen _Instellingen;
}
public class Class2 : Label
{
private Instellingen _Instellingen;
}
public class Class3 : TextBox
{
private Instellingen _Instellingen;
}
如果我有另一个类的字段,即使用其他类(但它可以是这3类人) 我必须使用开关吗?还是有更简单的方法?
public class AnotherClass
{
public AnotherClass()
{
GetInstellingenFromClass(new Class1());
GetInstellingenFromClass(new Class2());
GetInstellingenFromClass(new Class3());
}
private void GetInstellingenFromClass(Control c)
{
switch (c.GetType.ToString())
{
case "Class1":
Class1 klasse = (Class1) c;
//Do something with the _Instellingen of this class
break;
case "Class2":
Class2 klasse2 = (Class2) c;
//Do something with the _Instellingen of this class
break;
case "Class3":
Class3 klasse3 = (Class3)c;
//Do something with the _Instellingen of this class
break;
}
}
}
(不存在的东西,所以我可以做类似c._Instellingen? - >没有首先将其转换为正确的类型,在那里不管什么类型c是)
我希望你能理解我的问题。
谢谢
在这种情况下,因为它们都份额相同的功能,并以同样的方式实现它......不会的抽象基类更有意义? – 2010-03-24 13:36:22
由于他的方法需要一个'Control',我假设他们不一定是所有的标签。 – SLaks 2010-03-24 13:37:40
但他检查c.GetType以查看它是否与他的一个自定义类型相匹配。它只处理所有从Label开始继承的Class1,Class2和Class3类型的调用。我看到你在说什么。 – 2010-03-24 13:40:22