我想将FindControl方法的输出强制转换为特定类型的控件,但我希望类型本身作为参数传递。我第一次尝试:
public static List<T> GetList<T>(..., Type tp, ...)
{
...
tp castedCtrl = (panel.FindControl(ctrlPrefixName + i.ToString()) as tp);
...
}
这是我的首选结果,但根本不编译。 我也尝试过:
dynamic castedCtrl = Convert.ChangeType(panel.FindControl(ctrlPrefixName + i.ToString()), tp);
但是这需要我所有的tp实现IConvertible接口,这是不需要的,需要很多意想不到的工作。
如何将FindControl输出的输出转换为我想要的类型(在操作中我想传递用户控件类的名称)。
答案 0 :(得分:1)
你走了:
input type="date"
为了使用它:
public static List<T> GetList<T, U>(Page page, string ctrlPrefixName)
where T : class
where U : Control
{
int i = 1;
U castedCtrl = page.FindControl(ctrlPrefixName + i.ToString()) as U;
return new List<T>();
}