我想創建一個類的列表,我可以在其中創建一個「工具箱」在我的窗體中。它歸結爲一個可能的小部件列表,我可以拖放到Panel
。這些類將實現相同的接口並有一些靜態方法來創建列表。C#:創建一個類的數組
一些代碼,我有:
public interface IWidget {
Image image { get; }
}
public class Gauge : IWidget, PictureBox {
public static Image image {
get {
return Properties.Resources.gauge;
}
}
}
在Form
,我想提出一個這樣的數組:
IWidget[] supported_widgets = { Gauge };
和循環在他們創造工具箱中的用戶可以從中選擇,使用類的靜態方法,而不是通過實例化它們(當在Panel
下降,他們將被實例化):
foreach (IWidget w in supported_widgets) {
PictureBox p = new PictureBox();
p.Image = w.getImage();
toolbox.Controls.Add(p);
}
我用System.Type
進行了實驗,但感覺有點矯枉過正。什麼是做這種事的最好方法?它甚至可能沒有實例化類?
接口應該以I ...'IWidget'開始,而不是'Widget'。它使閱讀代碼更容易理解什麼是接口和什麼是類。 –
@ m-y我知道。我會更新我的問題。 –
另外,您不能將接口公共成員實現爲靜態。它必須作爲一個實例來實現。 –