我有一个返回List<T>
子控件的方法,如下所示:
void GetAllControlsOfType<T>(List<T> lst, Control parent) where T:class
{
if (parent.GetType() == typeof(T))
lst.Add(parent as T);
foreach (Control ch in parent.Controls)
this.GetAllControlsOfType<T>(lst, ch);
}
但我必须像这样使用它:
List<WebControl> foo = new List<WebControl>();
GetAllControlsOfType<WebControl>(foo, this); //this = webpage instance
当然,有一些 c# 魔法可以让我编写一个可以这样调用的方法:
List<WebControl> foo = GetAllControlsOfType<WebControl>(this);