gpt4 book ai didi

C#:创建类数组

转载 作者:行者123 更新时间:2023-12-02 18:00:16 26 4
gpt4 key购买 nike

我想创建一个类列表,从中我可以在我的表单中构建一个“工具箱”。它归结为一个可能的小部件列表,我可以将它们拖放到 Panel 中。这些类将实现相同的接口(interface)并具有一些静态方法来创建列表。

我有一些代码:

public interface IWidget {
Image image { get; }
}

public class Gauge : IWidget, PictureBox {
public static Image image {
get {
return Properties.Resources.gauge;
}
}
}

在表单中,我想放置一个像这样的数组:

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 want to create a list of classes

从字面上看,这根本不可能。

您可以做的是创建对象(实例)列表。它可以是您已经尝试过的 Type 类,也可以为每种类型创建一个辅助类。

 class WidgetHelper<T> where  T : IWidget, new() { }

然后您可能想向 IWidget 添加更多功能。

关于C#:创建类数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13029692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com