1

私はすべてのユーザー コントロールの基本クラスを持っています: SiteUserControlBase. typeparam: も必要ですSiteUserControlBase<T>SiteUserControlBasetypeparam の考慮から派生したページ上のすべてのコントロールを見つけるにはどうすればよいですか?

以下の拡張メソッドを使用して type のすべてのコントロールを検索しますがSiteUserControlBase、type param も使用するすべてのコントロールを除外します。

public static IEnumerable<T> FindControlsOfType<T>(this ControlCollection Controls) 
    where T : class
{
    T control;
    foreach (Control ctrl in Controls)
    {
        if ((control = ctrl as T) != null)
        {
            yield return control;
        }

        foreach (T child in FindControlsOfType<T>(ctrl.Controls))
        {
            yield return child;
        }
    }
}
4

0 に答える 0