我有以下問題。
我有一類「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