有3个类:ctl_A,ctl_B,ctl_C
有一个枚举:
enum ctlType
{
ctl_A,
ctl_B,
ctl_C
};现有一个方法:
void ctlsetbind(object sender,string fieldname,ctlType type){}
使得根据传递的type的值来对传递的sender(即那3个类:ctl_A,ctl_B,ctl_C)进行类型转换并给其属性赋值,要求达到:
ctlType类型 obj= (ctlType类型)sender; //在这里我不知道怎么写
//obj.Fieldname=fieldname;
//obj.DataBind();如果是告诉我进行判断if (type==ctlType.ctl_A)然后在ctl_A obj=(ctl_A)sender的话那就免了,用这样的方法免提了,因为假如我的ctlType枚举里面有很多值的话,那判断下去就太麻烦了。
有一个枚举:
enum ctlType
{
ctl_A,
ctl_B,
ctl_C
};现有一个方法:
void ctlsetbind(object sender,string fieldname,ctlType type){}
使得根据传递的type的值来对传递的sender(即那3个类:ctl_A,ctl_B,ctl_C)进行类型转换并给其属性赋值,要求达到:
ctlType类型 obj= (ctlType类型)sender; //在这里我不知道怎么写
//obj.Fieldname=fieldname;
//obj.DataBind();如果是告诉我进行判断if (type==ctlType.ctl_A)然后在ctl_A obj=(ctl_A)sender的话那就免了,用这样的方法免提了,因为假如我的ctlType枚举里面有很多值的话,那判断下去就太麻烦了。
如果要使用这个对象的方法或属性,可以用反射,如果用反射的话,你传过来一个ctlType type根本就是画蛇添足.
obj.GetType().GetMethod("xxxx").Invoke(obj,null);
我听别人说用什么CreateInstance(classname),不晓得是怎么个用法