110,536
社区成员
发帖
与我相关
我的任务
分享
List<接口> 集合 = new List<接口>();
interface 接口
{...}
class A:接口
{...}
class B:接口
{...}
class C:接口
{...}
void 绑定CheckedListBox()
{
if(选择框.CheckedItems.Contains(A))
集合.Add(new A());
else if(选择框.CheckedItems.Contains(B))
集合.Add(new B());
else if(选择框.CheckedItems.Contains(C))
集合.Add(new C());
}
void 启动功能()
{
foreach(var 成员 in 集合)
成员.启动功能();
}
这是现在的写法。有没有这种可能:class 自定义类
{
...
}
Type 类型 = typeof(自定义类);
类型 实例 = new 类型(); // 报错;
List<Type> 集合 = new List<Type>();
集合.Add(ypeof(A));
多学一些面向类型、面向对象的编程就会知道区分对象和对象类了。。 dt = new DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("class", typeof(接口));
dt.Rows.Add("A", new A());
dt.Rows.Add("B", new B());
选择框.DataSource = dt;
选择框.ValueMember = "class";
选择框.DisplayMember = "Name";
如果先不实例化的话,可能要用到反射,很麻烦
其实,先都实例化好也无所谓,既然开列了,总是可能要用到的